If the machine has always done this (is it fairly new?) then it could be as simple as wrong polarity dir signals to the stepper. In effect, the direction change signal is happening at the wrong point of the step pulse and you gradually get a drift in direction on that axis. Not an uncommon problem when a machine is first set up. There is quite a number of threads talking about this but it's late and my brain is a bit too frazzled to give chapter and verse here.

On normal profile cutting, you generally don't see the problem as there are fewer direction changes but if you are doing 3D carving and, in effect, lose one step in Z every direction change, then it builds up. That's how I found exactly the same problem on my own machine, except that in my case, the drift was downwards and potentially more damaging...