Sounds like your switches could be inaccurate, what kind are they?
When you do a homing move the axis will move to the switch then back off and will set the zero position when the switch again closes, if you then move away and return to zero your switches should not be triggered. If however your switches are not accurate the closed position may vary considerably and cause the problems you are experiencing.
Hood