Hello Fraserjim
Based on my experience with encoders , What you say (" but seems to do it in exact
steps")can happen if the following happens.
There is a parameter which tells the machine how many encoder revolutions equals one revolution of the spindle . If this got changed somehow then the error keeps cumulating and keep overshooting or undershooting the position . ( I know you checked the parameters ....)
Either that or the timer pulley was changed and the number of teeth didn't match the the earlier one.
Any teeth missing on the timer Belt ???
Just some wild hunches that I just put on paper in the hope that it will trigger some thought process elsewhere....
MJM