A few problems with this circuit.
1st), why 15V for VCC?, even the blue leds in an RGB array run at ~3.5V Youre burning up a lot of power in your resistors or transistor dropping all that voltage. Unless of course they are strings of LEDs
2nd) The resistors. You're going to need a current limiting resistor for each individual LED, because the voltage drop of each one varies with the chemistry of the LED, plus not all of your LEDs are on at the same time, so it might be getting 5mA or 15mA depending on the state of the other LEDs. I wouldn't be surprised if your blue LED wasn't very bright when all 3 are on, but quite bright when its the only one on. If you're multiplexing it so that only one LED is on at a time, you could probably get away with one resistor per RGB array, but the max currents in each one would vary a lot still.
3rd) NPN transistors need to source current into the base to conduct. If you want to saturate your fourth NPN, your PWM output needs to be higher than the collector voltage (VCC) At the moment though, it will be in the linear region and it would be outputting the output of the PIC pin (4.5ish volts?) minus the Vbe of the transistor (~0.6v). If you want the switch to saturate with your 5V signal, you want a PNP transistor where you sink current from the base to turn it on. And and NPN (collector to base resistor of the PNP, emitter to ground) to keep the 15v from being seen by the PIC
4th) if you can do it in software, what advantages does adding extra hardware add? One possible advantage I could think of is if youre feeding Q4 from a hardware PWM, it could be faster/have more resolution than a software pwm, so that at dim overall brightness you dont lose resolution in the (presumably) lower res and slow software PWM. Make sure you actually get an advantage though before you add extra hardware