To place an icon on the systray you must have valid handle to a window. As far as I remember, systray class uses _screen.HWnd for this purpose and through BINDEVENT dispatches WM_VSCROLL (or may be some other) window messages to it.
It might happen that _screen.HWnd is not initialized or invalid at the moment when your application tries to put an icon to the systray. Make sure _screen.HWnd is not equal to zero when you instantiate an object from the systray class.
When you place an icon using invalid window handle, the icon may just blink and then it disappears. At the best it will be visible until you move mouse cursor over it.