Sure that’s not due to backlash?

Other than improving the backlash situation, the only answer to that is backlash compensation in the control software.

To square the gantry the best I found was to drill 2 holes for precision dowels in the y axis and butt a precision square up against it. I then run a dial indicator along the edge in X axis, and then loosen the gantry bolts and smack it with a mallet until it’s as square as I can get it. You won’t get it perfect as the gantry isn’t completely flat.