Well, I'm not very good with Mach, my machine is a different software, but I help a friend with Mach, so I have some knowledge. Where your issues are coming from, I can't say, and I know that there are lots of different ways to get the same thing accomplished. My process goes something like this:
Home the machine, that usually is fully X minus, Y minus and Z plus, then go indicate or edge find the part and determine where I wand X0 Y0 to be. In Mach, you then zero the X and Y readout, that enters the part position into G54, leaving the Z alone.
Now, put your first tool, regardless of length, into the quill and bring it down to touch the Z0 level of the part, set that tool dimension to the tool number in your program accordingly. Do the same with the other tools. Double check your tool dimension table and make sure that the values correspond with what you got with the tools touching the Z0 level.
In your program, like I said, your tool call will now be T01 M06 G43 H01, then your first move after you get to your position will be G00 Z.1, that will rapid down to .100" above the part, then proceed with your machining.
After you have drilled/milled, rapid up to Z.1, then your next line will be G49 Z0, this cancels the tool length offset and returns the Z axis to the top. You need to do that after each tool to cancel that tools offset.
Do your tool change, and proceed thru all of your tools in the same fashion. It doesn't matter which tool is longest or shortest, as long as they will all reach the part and depth you are machining to with the available stroke you have of the machine... my Z quill is limited to 5", so I have to be careful to have the tools pretty close to the same length. I don't like to be rapiding along just .1 or even .25" above the part... if you have clamps or screws sticking up, or chips lay on the part, you might run into clamps, or drag chips and make marks on your part, the few split seconds of Z movement up and down are not going to make or break you.
That should get you pretty close...