Thanks all. It was indeed a WDT issue, and the WDT disable bits weren't being set. None of the config register bits were being set.
The programmer has a separate tick box for Con.FUSE Bit . When I program with this set, it gives a programming error, so I thought it was trying to program an un-implemented function on one bit, which I didn't think would affect the WDT etc.
When I program with the tick box ticked, the programmer says error, but the reset glitch has disappeared and MCLR pin is disabled as it should be.
I will investigate why the programmer is giving an error. So anyone with the Minipro, make sure con.FUSE bit is ticked, and ignore the error it throws, as it does actually program correctly.
The PIC XC8 compiler/assembler is setting the two most significant bits in the HEX file for the config register as binary 1.
The Minipro reads back all data including the config register as a verification. When it does so, it reads binary zero from the 2 MSBs. The verification error is thrown by Minipro v6.50 with TL866 programmer.
I have tried flipping all bits in the pragma config fields, it appears all configuration bits are correctly programmed. To fix the error, program a PIC ignoring the error. Read the device, then write out to a HEX file. The new HEX file won't throw an error.
Perhaps the config register is 14 bits long and the two MSBs in the 16 bit word in the HEX file are un-implemented.
If this is the case, and the chip does read back the un-implemented bits as Zero, then it would perhaps be better if XC8 set the bits to the same value as would be read back from the chip. No doubt the PIC programmer has a built-in work-around.