Multiple 4-Digit 7 Segment Displays with Arduino
I see that this has an I2C driver!  You shouldn't need to route each display to 2 I/O pins and set up three separate I2C busses.  There's a jumper to change the address on the board.   Just daisy-chain the SDA and SCL lines (making sure that there's a pull-up resistor somewhere if they're not already on the boards), and talk to each one in your code through its unique address.  You might need to edit that function you're calling to pass an address as an argument-- maybe an Arduino user can post good instructions on how to do that.  

To be a bit clearer, use the on-board jumper to give each display its own unique I2C address, and edit the function to include an address argument that specifies which display you're talking to.

UPDATE:
http://forums.adafruit.com/viewtopic.php?f=47&amp;t=29774

check out the example there.  I don't speak C++, so I'm really going to embarrass myself here to try to help you out, but I think somewhere you need

matrix1.begin(0x70);  // Start up the  LCD matrixes
matrix2.begin(0x71);


The hex numbers will change according to how you've hardware-defined your display addresses.