NVPROT is just a part of flash. You can't change it without mandatory erase step.
If you made NVPROT protecting it self, then you need to go to special single chip mode (using your BDM debugger), in which FPROT register is writeable without restrictions.
Normally, in case you are using some bootloader, you should program NVPROT to protect vectors area and whole bootloader. To protect application, app at startup or bootloader before jumping to app writes to FPROT register. FPROT, as you should know, is writeable all the time, but only towards protecting more flash. You can protect more flash at any time.
To allow bootloader reflashing app code you need to reset MCU (using COP reset, ILAD reset, etc) and tell bootloader somehow that it is not a sudden normal reset, but intentional reset to make FPROT=NVPROT, which should unprotect application flash.
Regards,
Edward