Buchanan,
It's good that your problem is repeatable as you can try things to find the culprit.
By swapping the axes and getting the same small additive error it tells me that it is not the drive, gcode, or Mach. ie; Mach controls the machine based on the gcode instructions created by the software which in turn goes to the drive.
The intial axis error is 0.03 mm ( which is 0.0012" ).
You say not a mechanical / geometry problem,but, not sure that is true.
So here are some suggestions:
1. Create a gcode file that simply duplicates the snippet of code for the sequence that seems to be problematic. You can then run that small code numerous times to re-confirm the problem while taking physical measurements and can also add in dwells to see what the dro says while doing it.
BUT, before you do 1.
2. What's the Y axis resolution?
3. Check / test to know what the backlash of the axis is. Don't say zero, very unlikely, it may be small but it is there. Also the backlash may vary depending on the screw ie; can be different at different screw sections and when when going in different directions. Also, depending on acceleration it can change due to loading on the screw which also influences the trust bearing preload / movement.
Each part of the axis contributes to the system inaccuracy. Know what they are.
Let me add that getting axis accurate repeatable down to ( 0.03 mm / which is 0.0012" ) is somewhat easy but below that value really need to be meticulous and have good system compponents.
There is more that you can do, but, first know what you have.
FWIW,
Stay focused working on the problem in a logial way of testing, one step at time and not doing all kinds of things.
RICH