1) agsXMPP is Open Source licensed under the GPL. You can port it pretty easy to Wndows Phone.
2) The major problem is the platform itself. XMPP and most other IM services require a persistent socket connection. There are sockets in Mango now, but whenever your app goes in the background the socket gets disconnected and you are not able to receive any data over XMPP. When your app is in the background then the only way to receive data are the Microsoft Push services. As firebellys pointed out this is the reason why there are not many IM apps in the Marketplace. You either use push only and convert XMPP <==> Push on your webservice, or you use a combination of both and use Push only to wake up your app and then reconnect with sockets.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…