Figured out the snapshot problem! The bug is that creating a snapshot changes the current directory in the filebrowser object (probably to the snapshot directory), so when you try to load the next MSU-1 related file, it looks for it in the wrong directory. Unfortunately, because the original author didn't bother to implement the S9xGetFilename function, I'm not really sure how to get the right path. So, if anybody else is more familiar with the Gx-specific code, here is the line you need to fix:
https://github.com/qwertymodo/snes9xgx/blob/msu1/source/snes9x/msu1.cpp#L245
All you need to do is replace "browser.dir" with the folder containing the currently loaded ROM file.
Edit: Ok, I got it. This feels like such a dirty hack, but honestly, that describes so many things about this port, one more isn't going to hurt anybody. Snapshots are officially fixed.
https://github.com/qwertymodo/snes9xgx/commit/d11f8b067c7bd0eb3b22f4f78e9b04e6022c538e