Individual control of multiple RGB leds
Here is a 1/2 software 1/2 hardware solution:

You actually have 6 pwm pins (from the silk screen notation in your picture).  So you can control 2 RGB LEDs independently.  If you added 4 more transistors that are used to gate the common 5v going to each of the 4 RGB LEDs you could control them in pairs.  That is, you could turn on 2 independently controlled RGB LEDs and let the 6 PWM outputs control the brightness and color of each of the 2 for, say, 100ms.  Then you could turn those off and turn on the other 2 independently controlled RGB LEDs for 100ms.  During the switch, you would change the PWMs for the 2nd set of RGB LEDs.  The draw back to this approach?  You may start noticing the LEDs flickering.  You may have to adjust the rate which you switch between the two pairs of LEDs.  And, of course, it may not work as you expect it to.

Totally different approach:

You can use programmable RGB LEDs:



And use this Arduino software library. These types of RGB LEDs have the PWM build in.  The Arduino sends out serial data to the first LED which strips off its RGB data.  Then sends the data to the next RGB LED which does the same.  So you can control many RGB LEDs using a single pin on your Arduino.