How does the PIC's PMCON1.WRERR bit actually work?
According to the data sheet:


  The WRERR bit is set when a write operation is interrupted
  by a Reset during normal operation. In these situations,
  following Reset, the user can check the WRERR bit
  and execute the appropriate error handling routine.


That means the only time you should really be looking at the WRERR bit is at the start of your program to see if a reset occurred during a write operation. If it did, then you know you can't trust the contents of the memory you wrote. You should then run an error handling routine, which might scan the area of memory that you write to looking for any rows that are part-written, don't have the right checksum, etc, and doing something "appropriate" with them, such as replacing them with valid data, erasing them, whatever is right for your software.

The proper way to know if the row you have written has been written correctly is to read the row in and compare it to what you have told it to write, and if they differ then something went wrong (typically you have worn out your flash and you need to replace the chip).