First... Can you move to RC6-RCBugFix? That is going to be the easiest code for us to help you with.
The G30 should work to probe the piece. But trying to do this on a Delta is going to be much more complicated. The Delta Towers complicate the movement dramatically. They require the correct usage of void prepare_move_raw() and sync_plan_position_delta(); The learning curve to understand this is going to be steep even for a software engineer.
If you back off and do this for a Cartesian machine, G30 should be straight forward to use. You can use SERIAL_PROTOCOLPGM() to display debug information at every step and to print out variables so you can figure out what is wrong within a step that is acting unexpectedly.
The G30 should work to probe the piece. But trying to do this on a Delta is going to be much more complicated. The Delta Towers complicate the movement dramatically. They require the correct usage of void prepare_move_raw() and sync_plan_position_delta(); The learning curve to understand this is going to be steep even for a software engineer.
If you back off and do this for a Cartesian machine, G30 should be straight forward to use. You can use SERIAL_PROTOCOLPGM() to display debug information at every step and to print out variables so you can figure out what is wrong within a step that is acting unexpectedly.