Hi,
I do not think the issue is the code you mentioned.
If you disassemble the code for both of them you will see the only difference in the shift right.
The issue, in my opinion, is a traffic jam and data processing time. Have you checked overun error?
It can happen that if you use interrupt communication then there is no time to serve other interrupt request because of current interrupt processing.
Could you please try to decrease sending period and perform tests.
Best regards,
Ladislav