Great question–for me, power cycling means turning the machine off with the emergency stop button on the front and powering down the PC, then later turning them both on again. I think the home X,Y,Z values are stored in Carbide Motion, not in the Shapeoko; if so, they would be stored on the computer’s drive (older thread that discusses this: Keeping job zeros?). Regardless, as a software engineer, I would suggest trying to characterize the behavior. Specifically, while noting the Z offset value displayed in Carbide Motion, try some power-cycle tests in which you jog the machine to a location and zero the offsets (no need to power on the router). Determine how much the Z axis value changes, or under what conditions it’s forgotten. For example, does it always reset to the same constant value? Does it EVER remember across a power cycle? What steps are being used to set the value? Just some ideas.