Estranho, imaginando que funciona normalmente com o EMC, deveria ser a mesma coisa com o Mach3..
Eu não faço idéia do que pode ser, mas iria sugerir uma rotina de testes, onde poderíamos tentar criar um padrão de movimentos e assim verificar se há desvios.
A idéia seria executar por exemplo um quadrado repetido "n" vezes, e depois de uma série de iterações, enviaríamos os eixos para a origem e verificaríamos se houve desvio.
Este teste seria feito com o spindle ligado e posteriormente, desligado...
Um exemplo de código:
G01 X100
G01 Y100
G01 X0
G01 Y0
M47
M30
Se me lembro bem, o código M47 irá fazer o programa ser repetido "n" vezes...para parar é só dar ESC ou STOP...
Faça o teste, e veja se o programa volta a zero - se não voltar com o spindle desligado, pode ser que a perda de passos se dê por algum ajuste faltante ou errado.