I take it you mean you have disabled Z++ and Z--. I had (or still have) the same problem but on my Z axis (but it is on the lathe so it is the equivelant of the Y axis).
I must admit my homes worked alright after I disabled the limits. ( I only have two, both on seperate inputs - both wired directly for a 0v input)
I only use cheap micro switches and I am wondering if switch bounce is the problem in that switch acts as a lhome switch - it hits the switch, then reverses (fractionally) then switch bounce causes another signal which is interpreted as a limit switch. When does the program stop viewing the switch as a home, and revert to looking at it as a limit.
I know the "over-ride limits" allows you to jog both ways (even back into trouble) but would it be possible to re-write this bit of the program so that in normal operation you could always hit a limit then back off (ONLY). If it were then a home switch as well, the action is the same, it hits the switch thens backs off - but only til the switch opens/closes again.