The speed of the phototransistor optocoupler is possibly a problem, as AnyAndy has already flagged.
Also consider what threshold you are trying to achieve. If you want a zero-crossing pulse centered about the zero crossing and turning off at (say) +/-10V then you need to supply sufficient current to the LED to make that happen. Say that's 5mA. You now need to limit the current at the AC peaks to some reasonable value, and with a resistor it will be ~33 times higher, of course (\$\frac {230\sqrt{2}}{ 10}\$).
To get the width (ignoring the speed of response of the circuit) we know that the voltage is about 325 sin(\$\omega\$t) where \$\omega\$ is the angular frequency of \$2\pi 50\$ radians/second.
So the width of the pulse will be pw = (2/\$\omega\$)\$sin^{-1}\$(Vzc/325),
or, in general
pw = (\$1\over\pi f\$)\$ sin^{-1}(\frac{Vzc}{Vline \sqrt 2})\$
For example, if the voltage is +/-10V, then the pw will be about 200usec. For small voltages it will be approximately proportional since the rate of rise of a sine wave is almost constant near the zero crossing. So, a +/-5V voltage will give you a 100usec pulse, ideally preceding the zero crossing by 50usec and following the zero crossing by 50usec.
To make a precision zero crossing detector, you would be best to derive a power supply from the mains (maybe the TNY has some voltage you could borrow) and use a comparator of some kind (I've often used discretes because they're more immune to nasty stuff on the mains) to actuate a high speed logic-output coupler, so the LED in the opto sees only 5mA or 0mA.