USB Library
Configuration Bits

Make certain that all configuration bit settings between the bootloader firmware project, and the application firmware project, match 100% exactly. If they do not match, modify one or both projects until they do. The microcontroller hardware only implements one set of configuration bits, and therefore, the configuration bit settings are always shared between the bootloader firmware and application firmware projects. 

Attempting to declare two sets of configuration bits (that are not 100% exactly the same) can prevent the application and bootloader firmware image .hex files from being successfully merged when using the loadable project feature in MPLAB X (see the Merging Bootloader and Application Project Output section). 

By default, the HID bootloader does not reprogram the microcontroller config bits during an erase/program/verify sequence. Reprogramming the configuration bits is generally not recommended, since doing so is generally considered much more “dangerous” to the application, than reprogramming the normal application firmware code. When reprogramming the configuration bits, it is very easy to leave the application in a permanently broken (“bricked”) condition, if any of the new configuration bit settings are not 100% compatible with the hardware of the application. Certain config bit settings, such as the oscillator, BOR, extended instruction set, WDT, etc., are especially hazardous, since changing them can easily leave both the bootloader firmware and application firmware images in a non-operable (or non-USB operable) state, thereby preventing further re-programming operations. 

However, if absolutely necessary, the HID bootloader firmware and PC GUI applications do support reprogramming of the configuration bits. Doing so requires a special PC GUI/bootloader firmware “unlock” sequence to be executed. This occurs when the host/PC GUI program sends the “UNLOCK_CONFIG” bootloader command to the firmware. For applications that will support config bit reprogramming, it is recommended to hide the option from the PC GUI program, so that it is not accessible to end consumers, except in special circumstances when truly necessary. 

For some USB microcontrollers (namely PIC18FxxJxx USB microcontrollers), the configuration bits are stored in normal program flash memory, at the end of the application firmware program space. On these microcontrollers, the configuration bits are therefore stored on the same flash memory erase page as other (non-critical) program memory space that could theoretically be used by the application program. On these devices, it is generally recommended to modify the linker settings for the application program image, so that the application project is built so that it does not use any of the program memory that is shared with the flash memory erase page containing the configuration bits (ex: the last implemented flash memory page). This ensures that the application firmware image can be fully re-programmed, without requiring the configuration bit reprogramming mode to be enabled (by the UNLOCK_CONFIG) command.

NOTE: The HID bootloader PC application and firmware will not reprogram the last page of flash memory on these PIC18FxxJxx devices (which is shared with the config bits), unless the user configures the bootloader PC GUI program to perform config bit reprogramming operations, with the UNLOCK_CONFIG command. This restriction only applies to the specific microcontrollers that implement the configuration bits in the program flash memory space. 
MLA - USB Library Help Version : 2.16
http://www.microchip.com/mla