What may be happening is that when Vcc drops the CY7C63001 jumps to an incorrect address and wrote some data to the external EEPROM.
When the chip is powered down to about 3.5V, the microcontroller enters an unknown state where its operation is not reliable. You'll probably need to have an external circuit to detect this power down event and put the part into a known state (i.e. suspend mode).
If you are still in the early stage of the design, I would strongly suggest the enCore II family. With the enCore II micro, this shouldn't be a problem because the enCore has a Low Voltage Reset (LVR) circuit which is especially designed to handle this situation.
If moving to enCore is impossible, then here are some suggestions:
Normally, the D- pin is pulled up to Vcc through a 7.5K-ohm resistor, and this pin is also pulled down to ground through the host's internal 15K-ohm resistor. This voltage divider makes the D- pin centered around 3.3V.
Whenever Vcc is disconnected, you should have an external capacitor that charges D- pin up to Vcc, and the voltage on this pin will eventually decay to 0 through the 15K-ohm host pulldown resistor (RC circuit). You will need to design an external circuit that detects the 3.3V --> Vcc event on D- and put the chip into suspend when this happens. Because the 3.3V-->Vcc event on D- happens before Vcc goes to 3.5V (where the chip goes to an unknown state), the external circuit should be able to put the chip into suspend before the unreliable 3.5V Vcc is reached