I noticed weird behaviour as well on Mach's tool offsets. For instance, I have tool 1 set up just like you and I zero tool 1. Now I use the mach screen and change to any tool and test and the offset works fine.
However, using G-Code, if I already have tool 4 in the machine, and the tool change in the G-Code ask for tool 4, I press Cycle Start and everthing gets whacked out. Is the H4 changing the offset again? It shouldn't since this should be the tool offset measure from the spindle nose.
If I make sure I select any other tool first (Tool 0 by habit now), the G-Code works fine.
It cost me a nice 1/4 carbide end mill when it rapid z into the work (aluminum). Ruined the work as well.
I don't care to see how often it happens, I just select tool zero before I hit cycle start and the problem went away.