I did some more reading and decided to try a different relay board, one with opto-isolators and the option to provide a separate supply for the relay coils. I wired up the output of my rectifier fed regulator (9VDC) to the relay board coil input (i.e. JD-VCC + GND) and then connected the Arduino 5V and digital pins to the relay board (i.e. no GND). This article explains this is the way to properly isolate your Arduino from the relay circuit.

I then powered the Arduino with a separate 5VDC wall wart. So now I am powering the Arduino with a separate supply, and the relay coils are being energised by the rectified/regulated 9VDC supply from the 24VAC wall wart. The two circuits should be fully isolated. 

This seems to be pretty good now, although I am still seeing the ethernet shield LEDs go out when I switch off certain relays (some of the time) but it seems to stay connected. I will keep an eye on things to see if I see any resets over the next week.

I still think I will replace with the on-route SSR relay board...