Hey revhead, greetings from Canberra
Very perplexing, one thing worth doing is the later firmware (v 2.01 EPROM) update (http://www.marshalljmpmodshop.net/miscellaneous_parts_and_replacement_tubes.htm), not that it will/or wont influence this issue. MJMP will hopefully have some ideas, it seems to me like a problem with the VCA (or whatever bit or circuit controls the bass filter boost/cut). So the parameter "value" is storing correctly and being recalled correctly just not being applied ( +ve boost only) correctly. (
editing chorus or mid, treble or presence value up or down will also cause audible bass level to immediately revert to around 0db) this is probably because the other parameter settings are being reapplied after each edit so it has the same affect (issue) as changing patch (my guess).
So here's my take on it, the parameter values are just an entry in a file/memory location (kept alive by the battery). When you initiate/cause (by editing) a patch change various parts of the MP1 circuit are sent updated values to change to. The MP1 is analogue so the various bits of the circuit are controlled by analogue devices (e.g. Voltage Controlled Amplifiers (VCA)). These devices accept a signal from the parameter file/memory (or front panel in edit mode) and adjust accordingly. In this case, the device that controls the bass boost/cut is not reacting to +ve values properly and is defaulting to 0. Also it only happens when it's sent a change from memory as you can edit the value directly and it responds appropriately to that (as long as that's the last thing you change).
So I'm thinking there is either an issue in the data/signal path from memory to the bass boost/cut controller (i.e. the +ve bit/signal is not getting through/being recognised) or the controller device has an issue of some kind (less likely I recon as you can turn it up/down directly in edit mode (the edit signal would be a slightly different (direct) data/signal path than from the memory ??)). The device that controls bass boost/cut will receive a signal that represents a number (0 to 16) and a +ve/-ve indicator (1 bit in computer stuff, 0 or 1 though not sure how the MP1 circuit does it). It would seem the +ve value indicator of the signal is not getting through to the controller device from memory or is being corrupted in some way causing a default to 0 (controller throws the towel in).
Cheers Richard