This is where i run into a problem. The led matrix works by having 8 grounds (one for each row) and 16 inputs (8 green and 8 red). So my question is: Is there a configuration so that the "ground" pins arent the pins going into the TLC5940? I was hoping to use the TLC5940 to control the 16 input pins and have the 8 ground routed directly to the arduino Otherwise i simply wont have enough pins.
That chip has current-sink outputs so it can only drive the cathodes to ground, so you can't do what you'd like.
Trying to drive the cathodes directly from the Arduino wouldn't work anyway since they multiplex 16 LEDs and need to handle a lot of current (16 x 20mA = 320mA).
To drive 16 anode lines you ideally want a 1-of-16 decoder or a 16bit shift register that can source 160mA per output... That takes the pin count right down to something sensible. Sequence the anode lines high in turn, and for each line program the TLC5940.
The PWM of the TLC5940 is potentially going to strobe against the sequencing of the anodes, try using the current limiters to control the cathode lines? Might get the chip a little warm though