transistor switch
The problem is that the emitter of your NPN must be a diode drop lower than the base. For your PIC I/O pin, it probably swings approximately 0 to 5V, so when the I/O is high (5V), your load won't see a voltage any higher than ~ 5V - 0.7V = 4.3V. Obviously, you want to power the load with 12V, not 4.3V!
Now, if you were to use a 2N3906 (PNP) transistor, you would have a different problem: if your base is at 5V when the I/O is high, your transistor is ON all of the time, and there is no way to turn the load off.
If your PIC has open-drain outputs, then you are in business: just use a PNP transistor and attach the base to the open-drain I/O pin through a base resistor.
Otherwise, you might need to use 2 transistors or a relay, etc.... to do the switching. (You could use an NPN to pull the base of a PNP low, turning on the switch.)
Hope this helps!