As I mention in PM to HenrikOlsson,
MPLAB X have breakpoint on variable(ram location) read or write. That would pinpoint instruction that overwrite DFLTCON.
Also that could be up to MPASM version used. I had problem with DT_HID, but Darrel find out that ASM generated bad ram address for USB registers.
And there is allways option that there is bug in PBP.