@solarsamuel As an aside, normally closed switches are usually better than normally open because if a switch fails, then the gantry will slam into the frame and the motors will continue to try and move it. But, the downside of using normally closed switches is that if a wire falls off, then it will appear to be open (as you have discovered), which will mean that the gantry is considered homed at a position which could be far away from it's true homing position. Strange or alarming things will then happen if you haven't noticed and try and run a print like that (this is the voice of experience talking) ๐ .
So here is a little tip that you might find useful. Essentially check the state of the end stop at the start of homing and abort if it's already triggered. You need to find which end stop is for which axis but generally X=0, Y=1 and Z=2 (at least that's how it is on my machine). So to check the state of the Y end stop for example, before homing Y I use ......
if sensors.endstops[1].triggered
abort "Y endstop already triggered at the beginning of the homing move - aborting"
Obviously the command for the X and Z axes would use ...endstops[0] or [3]) and the message would refer to the X or Z endstop.
HTH