Surely the only way to get the referencing working is to set the soft limits outside the co-ordinates needed by the home switches. I use micro switches, and when these are hit, they travel quite a distance (relatively) before they stop. I can't remember by how far but it might be 0.0500. The axis then backs off until the switche closes and then the DRO goes to zero.
It follows therefore that my softlimits must be at least 0.0500 below zero, or the soft limit will trigger.
Coupled with that, of course is the fact that my z axis - the main lathe axis, can be de-coupled manually, moved to a short distance from the switch, the re-coupled and the axis told to home ( this saves time becasue the traverse time is so long). This shouldn't actually make much difference, because the relative DRO position should always be several inches above zero in a +_ve direction.
The problem is, of course that, in setting software limits, if you set them too high - they will trigger an E stop. If you set them too low, (on my system ) they will bend the metal actuator on the micro-switch.