If anyone has any ideas, here's where I'm at right now.
My SYSEX command is this (it contains 3 blocks):
F0 00 01 38 00 69 20 00 01 01 2A 45 46 46 45 54 53 20 4F 46 46 00 00 00 00 00 00 00 00 4D 01 F7 F0 00 01 38 00 69 21 00 7F 7F 7F 62 00 00 00 00 00 00 00 05 00 00 00 03 00 00 00 00 7F 7F 7F 77 7F 7F 7F 7E 7F 7F 7F 7B 7F 7F 7F 6C 7F 7F 7F 6E 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 00 00 00 00 01 00 00 00 6E 00 00 02 10 00 00 02 10 00 00 00 32 00 00 00 02 00 00 00 0E 00 00 00 6A 00 00 00 00 00 00 00 00 00 00 00 00 0D F7 F0 00 01 38 00 69 21 01 7F 7F 7F 79 00 00 00 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 F7
When I connect my iPhone or iPad, I get this:

When I send the command with OnSong, I get this:

And when I send the same command with ST4, I get this:

It seems that the first set of 32 bytes is not being sent with ST4. However, I have exactly the same command (copy and paste) in both applications. As a result, my device (VoiceLive Play) responds as it should with OnSong, but not with ST4. Any ideas?
P.S. Sometimes ST4 stops sending the SYSEX command (both with the iPhone and iPad). However, other MIDI commands continue to be sent correctly.