Hi,
Regarding the issue you are experiencing, I believe I have seen similar behavior in the past. If I remember correctly, the problem was resolved by executing a halt after each move type. Make sure this is the case, but let me know if it is still giving you trouble.
Worst case scenario we could reset the position using the current encoder position. Though it is definitely a workaround, at least the move would work correctly.
let me know how it goes, I am very interested.
Robert