Why do you depend on XNA, and in such a strange way? See if you can't pull in specific bits of code from MonoGame instead.