Thanks for all the replies guys. I tried all your suggestions and a few more.
After much exhaustion and a blown out mosfet I got it! Turns out Switch 3 was the problem all along. I took it out of the equation and it runs smoothly now!
Bonus question: Is there a better way to make the Arduino detect if a 2 pin switch is on or off? (pushing my luck here, sorry)
Thanks