If you have a computer with a parallel port, you can make a very simple programmer called a TAIT programmer. This is supported by free programming software that is probably still around.
The TAIT is essentially just a voltage buffer to protect the parallel port with the addition of a voltage translation to 9-13V for the high voltage programming line. The software pretty much does everything through the parallel port, and the only reason it can't program a PIC directly through parallel port is lack of the high voltage Vpp. If you were confident on your wiring, you could literally connect the PIC directly to the correct pings of a parallel port, and for the programming line, take that line, use it to drive a transistor to switch a 9V battery to the MCLR pin.
That's how I programmed my first PICs, incidentally. I can't remember the software I used, anymore, though.
There was another very simple programmer starting with a J. It was made for the other stupid connector on the back of old computers. D25? Can't remember what that is, even.
Microchip publishes the full schematics of their PICKIT2 and I think they host downloads of the firmware for the PIC18F2550. (If they don't, I have it). There are also some people who have made and published schemmies for simplified versions that have only fixed voltage power to target.
I have made full versions of the PICKIT2 (with some minor additions), and I didn't even know how to use PCB software as well as you already do. Gottas say it took a few long nights to finish the layout, and even longer to populate all those parts. I was dumb enough to save a bunch of parts as if I'd just make more as needed, lol. I shoulda made them all back when.
*software might have been called "EasyPIC." I'm not sure. If you google TAIT, you will probalby find a software. And the 12F508 was a flagship baseline PIC from 20 years ago; it is definitely supported by these old softwares.