I have switched to Repetier-Host just to make sure it isn't a host issue.
I homed the z axis, and as the axis moved it showed the position as 95mm. Then it hit the endstop, at which point it jumped to 300mm again. I pressed "set home" and position went back to 95mm, but this reverted to 300mm after I homed it again.
Because each print starts at z = 0mm, the printer believes it has to move from 300mm all the way to 0mm, and runs into the top of the z axis when it tries to accomplish this.
Hopefully you can point me to a firmware setting or M code that can help troubleshoot.