@jhanda I’m on my phone, so it’s difficult to spot errors in your config and macros. I can have a better look in the New Year. However, generally, it sounds like the Z offset of the BLTouch and the SZP are referencing the same Z0. You’re not the first to struggle with this, and I’m going to review the SZP instructions in the New Year: https://docs.duet3d.com/en/User_manual/Tuning/scanning_z_probe_calibration

Initially, you need to set Z0 with the BLTouch (assuming this sets the nozzle height correctly), then use this to calibrate the SZP Z offset. Note that:

make sure that no heightmap is applied when homing Z with the BLTouch or calibrating the SZP. Add M561 and/or G29 S2 before the SZP calibration to make sure any mesh is disabled. SZP calibration changes with temperature. You will need to recalibrate it before scanning if the temperature changes. As you have a BLTouch, you can do this in a macro, and can be done before every scan.

Ian