Your PSU looks fine, and I don't think an optoisolator will help any more than the relay already does.
I think it might be the wiring from the mains (contact) side of the relay is inducing noise into your micro's wiring, especially the reset pin circuit (that you did not show).
You could make sure the mains contact wiring is not near the other low voltage wiring, and use a low value resistor to tie the reset pin to Vdd or just connect it to Vdd if you don't have areset button.
Other general rules are to use a 22uF tantalum right on the bottom of the PCB between the micro's Vdd and Vss pins. And a RC snubber on the relay contacts can help but you need to use a large expensive X2 mains rated cap, and a fairly large resistor, so i would leave that as a last resort.