I get the green flashes occassionaly but no crashes, I suspect the two are not linked. Have you tried the origin forums? the developers, might be the better people to ask. Also post your power supply details.
The one GPU is hotter than the other because in a CrossFire setup the one GPU (top one) is taking in the hot air of the bottom GPU and subsequently uses hotter air to cool itself. I'm guessing you have an overheating problem, which can be reduced with better cooling in your case. Install a high air-flow fan (Antec TwoCool or TriCool are good choices, so you can set the fan speed manually when you are gaming or not) on the side panel to feed more cool air directly toward the GPU coolers in order to reduce the temps a little (it can make anything from 5'C - 10'C difference) and see if the issue remains. Also reduce the overclock on the CPU in order to spare a little heat and power, and then update all drivers. Report back with the test results when all is done
As mentioned above, more case airflow is needed for a dual card setup. A while back I tried to CF (2) 4870's and the top card topped out at 100C and would crash the game i was in. I did not feel like creating a wind tunnel in my case so I sold them both for a better card. An easy way to test this is to take the side off your case and get a regular AC fan. blow it directly on your cards and play a few rounds. Watch the temps and see if the green flashes go away. My guess is they will. An easy fix is to zip tie a 120mm or other size fan behind your cards and blow it to the rear of your case.
On a side note, I have no issues until i OC'ed my GTX580. i get the occasion green flashes that you are seeing. I live with them because they are not frequent. I'm slowly increasing my fan and they are becoming less and less frequent.
BF3 is rough on video card. It's easy on the CPU though. I's been killing people's overclocks that they "thought" were stable.