The first pass is really good, the second is off by about 3mm or 4mm the third pass is off by that again.

I'm pretty sure I've got the step direction / polarity and timing correct but I'll double check as it could loosing two steps on each change of direction would explain the drift between passes.