Modified a few other issues. 1st test seemed to work properly...
local inst = mc.mcGetInstance();
-- set height of Z axis at start of probe in machine coordinates
local probestart = -2.5
-- move Z to safe location = Z0 in Machine Coords
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 Z0 F60")
-- move to probe location in machine coordinates
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 X1 Y0 F60")
-- Move to probe start position, begin probe move, save Z work coordinate value
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 Z"..probestart)
mc.mcCntlGcodeExecuteWait(inst, "G01 G91 G31 Z-1 F10")
local toolz = mc.mcAxisGetPos(inst,2)
-- Move to tool change location in machine coordinates
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 Z0 F60")
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 X4 F60")
wx.wxMessageBox("Change Tool and Press OK to Continue")
-- Move back to probe location and probe again, set new Work Z coord to previous measurement = toolz
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 X1 Y0 F60")
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 Z"..probestart)
mc.mcCntlGcodeExecuteWait(inst, "G01 G91 G31 Z-1 F10")
mc.mcAxisSetPos(inst,2,toolz)
-- Move to machine coord Z0 and return to Work coord X0 Y0
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G53 Z0 F60")
mc.mcCntlGcodeExecuteWait(inst, "G01 G90 G54 X0 Y0 F60")
wx.wxMessageBox("Tool Change Complete")