Es fehlen dir Vorwiderstände, die den LED-Strom in nem sicheren Bereich halten und die nötige Leistung aushalten.
Ausserdem würde ich die LEDs entweder über die Transistoren setzen und die Emitter direkt mit Masse verbinden, oder PNP-Typen wählen. Sonst kann es passieren, dass die Transistoren nicht durchsteuern. Den Transistor-Basen fehlen aber auch noch Vorwiderstände. Ich nehm meist 1k-4,7k als Basiswiderstand.
Für die Anschlüsse AN0-2: du kannst eine andere Schaltung anschließen. Aber sie müssen die gleiche Masse haben und die Schaltung darf nur im Bereich von 0V-5V arbeiten, da sonst der Port beschädigt wird.
Dann hast du noch den ICSP-Stecker: Wenn du über den ICSP programmieren willst, brauchst du einen Widerstand zwischen +5V und MCLR (damit der Controller nicht dauernd Reset hat), oder du musst den MCLR abschalten, womit dann aber der ICSP nichtmehr klappt.
Und wichtig!: Wenn du den PIC normal programmierst, bekommt MCLR 12V, als Programmiersignal. Das bedeutet, dass du die Schaltung gegen diese 12V sichern musst. Eine 1N4148 Diode genommen und dann so aufgebaut:
MCLR an den MCLR-ICSP Pin und die Kathode der Diode, Anode der Dioden an einen 10kOhm Pullup und den 10kOhm an +5V. So verhindert die Diode, dass die 12V über den Pullup auf die restliche Schaltung gelangen.
Zum Dimmen: Ich weiß nicht genau wieviele Hardware-PWM Module der PIC hat und an welchen Pins die liegen. Aber was immer geht, ist eine Software-Dimmfunktion. Das könntest du so machen, dass du regelmäßig einen Interrupt auslöst und in der Interruptroutine einen Zähler um einen erhöhst. Danach vergleichst du den Wert mit einer eingestellten Helligkeit, und wenn die kleiner ist, als der Wert, dann schaltest du den Transistor ab, sonst bleibt er an.