I never could figure out why my G52 offsets ended up being ~1.9 inches away from each other per tool, when the tool block is on 1" centers. Never made any sense....
I use G52s with my gang tool holder, but then mine is set up for drills only, so the X offset never changes, and I just manually edit the G-code if the drill lengths change (I have a whiteboard with a corner dedicated to the drill offsets).
As to your offset being off, now you mention it, I think there is actually a bug in the tool change macro.
I noticed that if after doing a tool change where the X offset changed alot with minimal Z movement, the X axis would loose lots of steps/stall. It's like Mach was ignoring the X axis maximum speed, and setting speeds via the Z axis settings.
For example, if the X-axis had to move 80mm and the Y only 10mm, it would move the Y at rapid speed, and X would stall as it was expected to move at speeds far higher than it should.
I worked around it by adding extra lines to the G-code that move the carriage into the approximate place that is needed after the tool change.
I suspect the issue is something in the tool change macro, however I've never had a chance to look into it in any more detail, and given how cold it is outside, I'm taking the "if it's working, it doesn't need fixed" approach!