I have not done this but may be my idea could help.

Using Interrupts, when there is pulse from zero-crossing detector, you could succeed in your house keeping, timing that is.

Entering the ISR, the relevant registers would increment or decrement according the flags you have set in your main program. So there is accurate timing to fire every SCR even 5 or more since the ISR would be triggered every 10ms.

Ioannis