In the PROC rDropHandoffStand() which I assume is the one you're referring to, you use WObj:=wobjHandOffStand. I'd be taking a close look at this WObj to ensure it hasn't moved of been re-taught.
Next time you look at the robot running this routine with no issues, take note of the 'ABB' logo on axis 4, Is it normal or upside down?
Then, when you see it go out of position in this routine, check the ABB logo on axis 4 again and you may see that it is the opposite of what you observed previously.
I can't explain why this happens and perhaps some of the many experts on this site can provide an explanation but I've seen in the past where if ConfJ and ConfL are turned off, the robot can go to a position with axis 4 flipped over 180 degrees from the thought position which caused the position to be out by approx. 20mm which sounds a lot like what you're experiencing.
I can see that in parts of the program, you turn ConfJ and ConfL off.
If you think its worth trying, simple add these two lines to the start of the rDropHandoffStand() routine.
ConfJ\On;
ConfL\On;
I'm no expert but I've seen this exact problem happen a few times in the past. Hope this helps!