The code looks clean. Could indeed be a timing issue but let's try one other thing. However, before moving forward, ensure device is set for IR and not RF. Pull up the Device Properties and ensure that the device in which the code is contained is marked for IR vs RF extender. I presume you may have already checked this but it never hurts to ask.
If you are trying to run this code in a macro (not pressing an onscreen button), you may have an issue. I'd try changing the 'Duration' setting on the IR code first. The reason I suggest 'Duration' is due to the fact that this code has repeat-only data and no one-shot data. This will likely fix the problem if code is good but pronto not transmitting long enough.
The 7X00 series had issues with repeat-only codes, especially Sony 20 bit IR protocol and was one reason for the introduction of the 'Duration' of the IR code.
This is not Sony code but likely suffers from same root cause.
I posted this process as a fix for sony codes in other NG forum threads but will likely work here as well. Double up the repeat data so one-shot and repeat are the same.
What I've done here is to copy/paste to duplicate all data past the first 4 sets of numbers. I've then adjusted the one-shot IR pair count to be that of the repeating IR pair count. This ensures that in a macro, without any 'Duration' setting, the code is sent exactly one time. Without one-shot data, pronto will try and guess the duration required.
For more info on this hack, see Barry Gordon's Pronto Hex IR Format document in the Classic Pronto Files Section under 'User Documentation'.