if you put in tool length 10mm for tool 1 apply and save in tool table. inset a tool - any tool
now type in mdi g43h1 (tool offset should show as 10mm)
touch off tool and zero g54 offsets x y and z to a known position on your table ( a matchstick of wood clamped out of the end of vice for example - so it cant damage tool)
(this is your work offset. as if you have it set as the corner of a job etc)
now jog tool 1 up away from the matchstick
now tool 2 - set it to 20mm length in tool table ( leave the same tool 1 in the spindle)- make sure you apply the tool length in tool table!
type in mdi. g43h2- enter
press go to zero button. (same as g0 x0y0z0) the tool should now be in the same xy position. but 10mm above (as its 10mm longer)
the m6 doesnt affect tool offset. only g43 makes it change.
from this you will see that after setting your first tool to the job, any tool change after followed by g43h toolnumber will put the correct tool length ready to run.
what you are seeing previously is correct- the z readout is backed off (-Ve) of the new tool length selected. it will only become the same as fixture after a move