Hi,
I suppose that you call the IAP_CopyRamToFlash() in application code, furthermore you allocate the application in the flash memory from 0x0000_0000, especially the interrupt and Reset vectors are located at 0x0000_0000, the page 0 is at the address 0x0000_0000, if you erase page0, the application code is destroyed, interrupt/Reset vectors are destroyed, you application code can not run in the case. that is why I suppose you can not erase page 0.
Hope it can help you
BR
XiangJun Rong