I will get the schematic out tomorrow, but it looks like the Legoo and Songle references are pretty solid, both were purchased from Amazon. I am using a slightly different wiring diagram for the DPDT switch that involves a crossover wire, but I like your approach better, and thus will go to it. But if the Songle is an old-fashioned electromechanical relay, it would be hard to imagine any wrinkle in the 12 volt supply getting back to the Legoo board. Do I need some limiting resistors in the limit switch signal to prevent it from frying the board? These are inexpensive swiches I also bought from Amazon they are:
Cylewet 6Pcs V-156-1C25 Micro Limit Switch Long Hinge Roller Momentary SPDT Snap Action for Arduino (Pack of 6) CYT1046.
Is it possible that they are bouncing on closure and causing problems? I am using them in a normally closed manner to feed 5 volts to the arduino, and then pull it low to 0 volts when the switch is actuated. This brings the first relay high and feeds 12 volts to the DPDT switch which causes it to switch direction.