>>Perhaps you can instrument the code so you can understand what's happening less invasively?
>>Sorry to ask, but can you give an example?
I mean read the values into variables and print them to a terminal in such a way you can see what the values are, in real-time, and with the natural flow of things, closer to the operational speed/expectations of the devices, and without constantly sticking your fingers in the gears.
If you have to single step your own code to unpack the behaviour and understand the logic you've already lost. The machine is running several million times faster than you can see, think or move your fingers.
Also if you look at data registers or FIFO structures from a "Debug View" this will almost certainly disturb the internal states. These are not "memory" devices, but complete state machines, with synchronous and combinational logic.