Learn,
I will admit that tool length setting in Mach 3 REALLY had me going for a while! It took me a couple of hours one day determined to get it to work before I finally got it. So I'll try to save you some of the tools I broke by giving you one huge hint. When you press reset or rewind a program in Mach 3 it executes a G40 tool length cancellation automatically. This is deadly!! Because if you make a move with the previous tool still in the spindle it will move the Z to a zero length tool and almost certainly crash it. The correct length for the tool doesn't get set until the program reaches a tool change for that specific tool.
In mach3 and other CNC programs the tool length is kept in a table of offsets. The tool length gets applied at the tool change if you call the H word along with the tool number and then do a G43, which actually moves the Z to make the end of the new tool exactly where the end of the reference tool would be.
On the Offsets screen in Mach 3 in the lower right portion of the screen is where you enter the tool number and then touch off the tool to get the length. The reference tool, my edge finder is tool zero and it's length offset is zero in the table. All other tools get an offset plus or minus the length of my reference tool. You'll see this if you click the Save Tool Offsets button. These offsets are retentive even if you turn the machine off. So if you power the machine back up and pick up Z zero using the reference tool all other tools will still be the correct length when they are called, and you don't have to set them again.
If you are smart about this you may keep certain tools always in a holder and mark the holder with the tool number, then always use that tool number in your programs for that tool. You then don't have to touch off that tool again until you change it out because it is dull.
You need to play with this some. I'll bet you view what you do at work in a new light once you have this working on your own machine.