For the record. I managed to get it working by modifying the libgdiplus port and removing the line
This means it is now using the internal "toy" implementation of font rendering which probably isn't ideal in the long term but it is working fine for now.
So it seems that the issue is obviously with libgdiplus rather than mono itself.