I provide for noise, bad cable and propagation delays in both sides, not just rely on the processing time of
the mCrocontroller, so I would first, for troubleshooting, increase the delay time from 5 mSecs to 20, then come down until
the xmission is good, then add 10% tolerance.
Better way.. check for any noise and other delays source and filter it out.
As I said I am not totally in the picture, but can ask if you are using CRC16.