This got me thinking that I had seen this once before. I had given up pursuing this particular function, thinking that I had some sort of anomaly in by keyboard. But using two iPads talking to each other, no keyboard involved, the same problem occurs. This one uses two bytes, and again skips by 16 when the value is received.
I have not figured out what is common with the four byte instance where this occurs.
The sample file is up in the main question.