I tried the programmer successfully with the Windows version of Python 2.x.
You ignore the bootloader area, what a nice touch, the Microchip programmer doesn't have this option.
The first two bytes gave an error, but I assume this is because the bootloader modifies the start address.
I also got verify failures at c04, c05, c06, a8f8, a8f9, a8fa, a8fc, a8fd, and a8fe.
Firmware seemed to work OK. I didn't remove the jumper, is this a problem? It went into the firmware just fine with the jumper attached. I can tweak the bootloader or firmware if this is causing an issue.
The update seems a bit slow. I used 115200bps, which works fine on my PIC, and it seemed to take longer than normal. There was much less frequent traffic, the TX LED was only on intermittently, instead of constantly as with the Microchip programmer utility.
I'm writing a guide for the Python programmer now. Is your serial port on Linux specified as /dev/ttySx? Do you know what it should look like for a Mac?
Can we change the name to P24qp.py to be consistent with the existing programmer?