Sorry for bumping an old thread, but I believe I've found a workaround.
I recently got my first Gameduino2 and had the same issues when trying to use it with a WiFi shield. After reading this thread and doing some more digging of my own I found that pin 8 (GPU sel) is left HIGH LOW after calling any of the GD features. My workaround was to add a function to the GDClass, exposing the stop function in the transport class.
void GDClass::pause() {
GDTR.stop();
}
I could then call GD.pause() after initialization and GD.resume() when I need to use the library. It's quite messy but it works.
With more knowledge about how the Gameduino operates it may be possible to integrate this in a better way, but I'm assuming the SPI is left open for performance reasons.
I hope this may help someone out there avoid the frustration I've felt.