Bruce
I ran Brett's macro on my machine and it works fine.
Don't think the pause after the probe move (Code "G4 P0.25") is needed but it does not stop it working.
So I guess your problem may lie elsewhere. Are you using LPT? My SmoothStepper likes the macro to be a little different.
Also I found a gotcha in Brett's macro.
If, starting a job, I jog down close to material and call the tool zero, it is likely to move the Z in the wrong direction as the Z DRO is already a negative number.
I don't like my machine doing anything I am not expecting.

So my macro zeros the Z DRO before the probe move.
You can try this one of you like but if Brett's won't work then this probably won't make any difference to that.
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
PlateThickness = 1.5 'Z-plate thickness
If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P2" ' this delay gives me time to get probe in place
Code "G31Z-20 F100" 'probing move, can set the feed rate here as well as how far to move
While IsMoving() 'wait while it happens
Sleep 20
Wend
ZProbePos = GetVar(2002) 'get the axact point the probe was hit
Code "G0 Z" &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Wend
Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G0 Z20" 'put the Z retract height you want here
Code "(Z axis is now zeroed)" ' this message goes in the status bar
Code "F" &CurrentFeed 'Returns to prior feed rate
Else
Code "(Z-Plate is grounded, check connection and try again)" 'this goes in the status bar if applicable
Exit Sub
End If