Rounding errors.
I notice you are using an incrementing looping program and using G90.
So ever loop around it it adds 0.1" in a particular axis.
That's 2.54mm. Assuming internally Mach3 is done in metric (and is probably using floating point to make things even worse.) then at 32000 steps per inch that is 1259.(84252) steps per mm.
Seeing as how we can't send 0.84252 of a microstep to the axis, if we want to move 1mm we send out 1259 steps. If we want to move 0.1" we send out 319786 steps, which is 22 steps short. That is 0.0006875" error.
Not a noticeable problem if we are off positioned by that much on one pad.
This error could also introduced by the same sort of scaling problem in a PCB package if this is creating the code. If you use the earlier Protel PCB versions, and select metric, it can be out by 1.016% because the used 25000 binary steps internally so that there was no display rounding.
If you laid out a PCB in metric, then changed to inches, and plotted you PCB subtle errors would appear. Selecting inch or metric should only ever change what is displayed, not the absolute unit of measure. To support inch and metric to 0.001"=(2540 units) and 0.01mm=(100 units) you need some strange units so that both types of units can be represented with no errors.
Using incremental coding as you have shown in a fragment of program, every time we make a 0.1" step in the routing we are actually 22 steps short of the correct position. Due to the incremental G90 Mach3 re zeros itself (100 times for 100 pads). Now we have lost 2200 steps which is 0.06875" and scaling on your photo confirms almost exactly this amount of your error.
Try and hand code some linear code. DO NOT USE INCREMENTAL CODING over many steps.
Incremental code using G90 and Lxx for looping is very easy, but try the long way first.
It makes for a quick and easy program, but subtle scaling errors can occur internally in the program.
Your hole drilling does not appear to have incremental errors, but the pad pattern does, and it very closely matches the above numbers.
Forget the backlash and any other mechanical problems. You could put a digital counter on the stepper drive step signal to confirm the actual number of steps for 0.1" (should be 3200) did occur for drilling, and didn't occur for the pads (3198 steps). That's all it takes.
Super X3. 3600rpm. Sheridan 6"x24" Lathe + more. Three ways to fix things: The right way, the other way, and maybe your way, which is possibly a faster wrong way.