My suspicion is that setting IS propcase just updates the IS indicator in the Canon UI without actually affecting the IS function.
If so, it seems strange that the wrong value was causing crashes?
It caused a crash when the camera goes to turn IS off for shutdown or switch to playback, not when the propcase is set. What finally made me look at the script was that there is code that reads the propcase value, compares it to the internal variable that triggered the assert, and does something different if the value doesn't match.
I verified on sx160 and elph130 that changing the propcase doesn't turn it off. I tested this by going to max zoom with IS set to continuous, setting the propcase to off, and comparing that with IS turned off using the menu.
Or alternatively just provide a warning when the script starts?
Warning wouldn't be a bad idea, if you can identify the "off" value. Why couldn't Canon have used 0 for off like normal people?
FWIW, the off value on sx160is is 4. Elph130 uses 2 like g7x, but does not crash on switching to playback if it's set to 3.