Posted this a while ago and ended up not using Xamarin because I never found a solution. I have recently come back to Xamarin and the latest updates seem to have fixed this issue - the same project now works fine with no changes made.
So if anyone else encounters this - try updating.