Hi Dave,
Your GCode appears OK with all 4 passes exactly the same.
As you are getting errors then I think the problem lies with your machine. You could be loosing steps, perhaps as a result of electrical noise or possibly tightness or binding of your axis linear bearings or lead-screws ?
Are your stepper motors running hot ?
Tweakie.