Und gaaanz wichtig: Niemals mehrere LEDs an einem gemeinsamen Vorwiderstand betreiben, das gibt nur Ärger
Ansonsten funktioniert m.E. auch deine erste Schaltung (mal von den fehlenden Widerständen abgesehen

). Wenn Q1 sperrt, dann sind Q3/Q4 eh egal, und wenn Q1 leitet, dann ist das Kollektorpotential (zumindest bei brauchbaren Transistoren) nur geringfügig höher als das Emitterpotential -> es können auch die oberen NPNs geschaltet werden.
Wie gesagt, Vorwiderstände für die Basis-Pins der Transistoren nicht vergessen (Größenordnung 1 mA / 0,7 V sollte für die Basis meist ausreichen) und *getrennte* Vorwiderstände für die LEDs (für ~ 2 V / 20 mA, wenn es "normale" LEDs sind, sonst DS schauen).
Btw, es gibt auch noch Soft-PWM (je nach dem, was dein Controller sonst so zu tun hat) oder ATmegas mit bis zu 9 oder 10 PWM-Kanälen. Geht natürlich auch nur, wenn du noch nicht an einen Controller gebunden bist
Auch nicht vergessen: Das Helligkeitsempfinden des Menschen ist nichtlinear. Wenn du also zb 100 Helligkeitsstufen haben willst, die für den Menschen relativ linear erscheinen, brauchst du eine sehr hohe PWM-Auflösung (wenigstens 16 Bit), was bei den normalen ATmegas nur auf 2 Ausgängen der Fall ist.
Grüße,
Chris