Possible L2 paging issue after saving a bank.
Layer copy was causing a catastrophic crash with random (well the colours match the 8x8px pattern to be rendered but spread over the whole screen) pixels dotted across the screen, if, and only if you had previously done layer 2 copy to a bank, followed by a save of that bank. Take the save out and it's fine! Replace Layer 2 with layer 1,2 and it's also fine! With both in, the next layer 2 copy crashes the machine.
However, by binary chopping a function which fixed it, I was able to determine that:
Layer 2,1
Anytime after the save, but before any layer copy or erase operations fixed the issue and it's my workaround. (Layer 2 is on and being displayed all along.)
I haven't been able to produce a simple repro, but it was happening in Next Horizon which uses many layers of proc calls, was saving a bank from code in a different bank, and uses double buffering. I think it's a passing issue that is in someway related to the user of layer 2. I suspect seeing what "layer 2,1" resets which layer copy/erase then depend on might help find the issue.