PIC programmer, need to replace few components
According to the text on the website a BF959 is used because it has a low Cbc. My best guess is that this is important only for PICs that require a fast pulse train on the MCLR pin to get into programming mode (eg. PIC32). You could check the Cbc in the datahseets of the transistors you have and pic a candidate.

For other PICs a normal NPN is probably OK. 

For the diode you should use a schottky type, any smalls schotkky will probably do.