I know nothing about the CPS, but is the palette data (either source or destination) done via address/pointer registers that may be modified in the VBLANK ISR? I ask this because on the Neo Geo all sprite registers are done via VRAM address registers, so you must be careful to disable the VBLANK...