How to isolate a zero-cross detector from phase-controlled simistor?
You can try to google for the zero-cross detector. It can be done with a transformer or opto-coupler.
http://www.edn.com/design/analog/4368740/Mains-driven-zero-crossing-detector-uses-only-a-few-high-voltage-parts
https://sound-au.com/appnotes/an005.htm  

Then you set a ISR at each trigger event that starts a new timer ISR, or you simply have a time interrupt at each 200us and you count for each output required phase delay, at ZC ISR you reset counters.

ISR_ZC():
1. phaseCounter = 0;
2. All Outputs Off
3. Set interrupt at time where phase angle is 160 degrees - ISR_Off()
4. Enable Interrupt ISR every 200us - ISR_Cnt  

ISR_Cnt():
phaseCounter = phaseCounter + 1;
if phaseCounter >= setCnt1 then ouput1 = ON;
if phaseCounter >= setCnt2 then ouput2 = ON;
if phaseCounter >= setCnt3 then ouput3 = ON;   

ISR_Off():
1. disable ISR_Cnt
2. All outputs off