Well, you coud "try" setting the icon as a resource from SHELL32.DLL. But from my experience so far, the resources out of SHELL32.DLL are not consistent across OS's. I always thought that they were. Syntax is as follows:

$MsgBoxIcon.Icon = "SHELL32.DLL;23"

where "23" is the resource ident from the dll.