If you’re using NC switches, you need to issue a $5=1 command. By default, grbl is expecting NO switches, so will interpret an NC switch as being tripped. If you have issued the $5=1 command, disconnecting your NC switches will interpret them as being tripped, so you might want to try a $5=0 with nothing connected to see if you still get alarms.
Experiencing alarms with no switches connected and $5=0 set is a strong indicator of a noise issue, and I definitely had problems with noise using this shield. I was able to solve my noise problem by connecting a 100 nanoFarads (nF) (or 0.1 microFarads (uF)) ceramic capacitor between the signal and ground line of each of my NO switches. I just slipped the leads of the capacitors into the dupont connector so it made contact with the pins. I also had to add a capacitor to the probe connection for it to work reliably. I did not need to add the resistor that other sources mention, possibly because these pins already use the pull-up resistor of the Arduino Uno.
As @jeffeb3 states, you can certainly run without limit switches. The specified MPCNC motors running at the suggested amperage on the small drivers on the CNC shield will lose steps long before they do any lasting physical damage to the X or Y rails or belts. “Damage” to Z depends more on what tool is in place and what your spoilboard is made of, but there’s very little likelihood of permanently damaging the machine itself, except maybe bending the lead screw connector.
If the rest of your machine is operating as expected, I suggest you leave sorting out the endstops as a “someday” project and start putting the machine to use.