Ok here's what I've done...
I have disabled the soft limits on the z axis, this makes the code run very nicely.
Secondly, I have modified the probe switch so that it now has two break contacts, one opens for the probe sense and further travel opens the second contact as a limit switch.
Now, when probing it works as normal, but during manual z axis movement if I ram the torch into the table the second switch acts as a normal limit switch. Works pretty sweetly too
At least I know that it is the way the probing is initiated that was causing the issue now.
Thanks for the help on this one.