This has most likely to do with the fact that a savestate is an exact representation of an emulators "state" at the moment the savestate is created. Meaning, that everything, every register, memory address, etc. is contained in that state. Now, you've fixed the save problem, and load your save state. You still get the same error because the emulator still functions according to the myriad of parameters that were in effect when the state was created -- including the information about a wrong savetype in use.