are you using external tool measurment and importing the offsets?
"At this point we put a tool in the spindle, set the zero reference on Z to machine z0 and touched off on a known touch off location for Z. Do the same with other tools. Then we set a G54 location for the actual top of work using one of the the taught tools. Try to run a program and tool wants to crash."
you should only use one tool to set the Z0. compensation should be diference in height between the tool used to set the Z0. or alternativly if you are measuring the tool length off the machine it needs to be the gauge length and then you need to set the Z0 based on the spindle face. for simplicity go back to a master tool.
step 1. I usually use a long tool as the master. zero out it's H value.
step 2. jog the master tool down and touch off the part using the master tool and set Z0.
step 3. jog the next tool down and touch it off while on the offsets page. you should be able to see the position data and manually enter in the z value for the tools offset. this is the difference in length between the new tool and the masters length.
repeat for other tools.
tool changes should just be T1 M6
on my old tape drill (precurser to the robodrill) you need to have G49 and cancel the tool length compensation before a tool change.