Programming 16F84A With K8048 software & a custom Hardware (With CH340 USB2Ser)
Q5 is wired in Emitter Follower configuration, so the logic high voltage it sends to RB6 (PIC programming clock) will be about 0.6V less than the CH340's output (3.3v?). Also you  don't have a pull-down resistor on RB6, so the clock input will float high. 

Try connecting the Emitter of Q5 to ground, and wire the Collector to RB6. This will invert the clock signal, so you should set the BITRULES parameters accordingly. You might also consider lowering the value of R7 to around 1~2k, to ensure that the clock has a fast rise time and is not sensitive to noise. 

The CH340 produces 5V logic levels when powered by 5V. If your USB to Serial adapter has +5V connected to pin 19 of the CH340 then it is already producing 5V logic levels and you shouldn't need level shifting circuits.