Arduino Hangs when Connected to 220V Supply
Current pulse is induced when switching on the load which end up building potential on sensitive part of your schematic and your digital circuit tolerates it badly. 

You could have avoided it totally if you use optocoupling with zero-cross detection instead of relays. 

Usually it is quite tricky to find exact piece of circuit which is disturbed by the power surge. Please tale a look at Atmel AVR Appnotes 040 and 042. They will give you some insight into which parts of your microcontroller are most vulnerable to surges and how to handle them.

I would try adding 0.1uF ceramic capacitor on atmega reset pin to ground and power your arduino board from the same 12V source as relay board. Usually power supply from computer tends to be less then 5V, your atmega168/328 is not guaranteed for stable work if fed less then 4.5 volts. Try to wire your power load lines as far as possible from arduino. At least do not wire them under atmega or close to atmega power/signal lines. You may also try shielding Arduino and also ethernet board from relay board. 

Also try to keep ground connection and relay input control lines close together. Wire mess makes such things much much harder to handle.

EMC handling is a complex task. Above are only general guidelines, though they usually help if you remember them.