Well if it works, then it works, but you're relying on the 12V being accurate and stable - always nice to have some headroom for voltage.
With 6 LED's you can have a string of 6, two strings of 3, three strings of 2..
As you're using PWM I dont' think it would hurt to drive them hard at 20mA (assuming they're 20mA LED's!) which means for 3 strings of 2 in series.. (5V - (2*2V))/0.02 = 50 ohm resistor for each string. Maybe drop this to 33ohm depending on the saturation voltage of the transistor (or the on resistance on a MOSFET). At 20mA small signal transistors are fine, like a BC337 or any general purpose NPN.
If you really want constant current, then a simple NPN current sink like this:
http://www.seventransistorlabs.com/tmoranwms/Circuits_2010/Current_Sinks.pngIt has a larger voltage drop (~1.4V), so you'll need to use the 12V line, but that means you could have two of these for two strings of 3 LED's.. 3*Vf = 6V, plus the drop across sense resistor = 6.7V.. the transistor will have 12-6.7 = 5.3V across it. At 100% duty, it'll dissipate 5.3*0.02 = ~106mW, a TO92 will get warm. PWM signal is just used on the transistors base.
I guess the way to decide would be to do a mock up, and fiddle with the driving current of the LED's. If they appear to look good at 10mA, then measure the Vf. If they need to be brighter, run them at 20mA, and check the max Vf. All depends on whether the Vf hovers, or goes above 2V or if they all consistently are below it, if they are then you can get away with driving them all in series with a very low value resistor just to make sure.