Thanks. I usually do not change the MPU. Do you know where it gets modified?
When you tell us the address you monitor, we might be able to tell where it gets modified.
For example 0x88 get changed in the following Cypress generated code. The code in italics was added by me.
dataAt88 = 0xFB95; dataAgainAt88 = 0x61d9; address = 0x61d9; PWM_RIGHT_PUMP_ISR__INTC_NUMBER = 18u;
void PWM_RIGHT_PUMP_ISR_SetVector(cyisraddress address)
uint32_t dataAt88 = *(uint32_t*)0x88;
CyRamVectors[CYINT_IRQ_BASE + PWM_RIGHT_PUMP_ISR__INTC_NUMBER] = address;
uint32_t dataAgainAt88 = *(uint32_t*)0x88;
Address 0x00000088 is flash and not overlaid by ram.
As long as you do not rewrite flash it will keep its content. Use debugger to display memory, any changes would be marked in red colour.