Mind if I mess with the code? Also, how did main.c build without the header file for PIC16F1847? Edit: OK drop last question, I see it is in configurations.xml. Question: Would adding support for PIC12C5xx simply be a matter of porting the current version of pp.ino from the Arduino project over to main.c of this project and then adding a suite of 'p12c_isp_write_pgm' like methods where we call ISP_LVM_0 to enable the high voltage Vpp supply? Also, should ISP_LVM_D_0 be renamed to ISP_LVM_D_O? (Capital O for Output, as opposed to 0 for zero). It would appear that the command ISP_LVM_1 will assert RA3 and therefore constrain the range of programmable devices to the same as that supported on your AVR programmer (by the way, wow, good job testing all those device variants!).
But enough blather, I notice that by adding the diode, you have created a means by which RA3 can kill the high voltage on Vpp. If one can navigate the total lack of information, as you have done here, there is disproportionate profit/benefit/reward/edification.
You are very productive! I agree with your comments on the Middle East suppliers, they do seem very focused on cost optimization, and quality is also frequently found. K150 is a low-cost high-performance PIC programmer, support most popular PIC chip programming, read, encryption and other functions, the use of high-speed.