It seems that this could be happening due to XMonad being non-reparenting (I ran the same app under XFCE, and it seems to work okay).
This would not surprise me; it looks like they use Mono on Linux/Mac, and as yet there is no way to tell Mono that the window manager is non-reparenting so canvas widgets get messed up (they can't find themselves, since X11 uses window-relative addressing instead of screen-relative like Windows/.NET).
Any idea about what am I missing? Maybe my event masks are wrong?