I suspect one of the problems programming PIC devices at 3.3v is that software for most programmers wants to perform a bulk erase/chip erase operation (which requires 4.5-5.5v) before writing code, data, idloc, and config areas on the target...
My melabs Serial Programmer has a "low voltage erase" option which will use the "row erase" sequence instead of bulk erase/chip erase sequence, but this "row erase" capability is not available on all PICs...
Regards, Mike