In Screen class in its static constructor you determine value of MultiMonitorSupport. This is insufficient in case when you have 2 monitors and you unplug one monitor (without restarting app or windows), or if you have 1 monitor and plug in another one.
I dont know of System.Windows.Forms.Screen.AllScreens is working fine or not because i dont have two monitors at home yet, but will try it at work later.