I guess if I look at the forum list, I might have seen this

I followed the text file you posted, but the error I get upon opening axis is that and2 already exists at loadrt and2 names=and2.combined.setter.
Here is what I changes the text to, in my custom.hal file if that might matter:
# --- probe signals separated for probe + toolsetter with status checking and possible bypass from macro ---
loadrt or2 names=or2.combined-touch
loadrt and2 names=and2.combined-probe
loadrt and2 names=and2.combined-setter
loadrt not names=not.combined-probe-on
loadrt not names=not.combined-setter-on
addf or2.combined-touch servo-thread
addf not.combined-probe-on servo-thread
addf not.combined-setter-on servo-thread
addf and2.combined-probe servo-thread
addf and2.combined-setter servo-thread
net touch-probe-not-in <= motion.digital-out-01
net touch-probe-not-in => not.combined-probe-on.in
net touch-setter-not-in <= motion.digital-out-02
net touch-setter-not-in => not.combined-setter-on.in
net touch-probe <= hm2_7i96.0.gpio.006.in
#net touch-probe <= hm2_7i96.0.0.input-14
net touch-probe => and2.combined-probe.in0
net touch-probe-on-psng <= not.combined-probe-on.out # M65 P1 activate / M64 P1 inhibit output from macro #motion.digital-out-01
net touch-probe-on-psng => and2.combined-probe.in1;
net touch-probe-and2-psng <= and2.combined-probe.out
net touch-probe-and2-psng => or2.combined-touch.in0
net touch-setter <= hm2_7i96.0.gpio.008.in_not
net touch-setter => and2.combined-setter.in0
net touch-setter-on-psng <= not.combined-setter-on.out # M65 P2 activate / M64 P2 inhibit output from macro #motion.digital-out-02
net touch-setter-on-psng => and2.combined-setter.in1
net touch-setter-and2-psng <= and2.combined-setter.out
net touch-setter-and2-psng => or2.combined-touch.in1
net touch-probe-combined <= or2.combined-touch.out
net touch-probe-combined => motion.probe-input