The problem I've spotted is that your screen buffers are not aligned correctly. You're using the AGA 4x display fetch mode, which requires your screen buffers to be aligned to multiples of 8 bytes (for each plane).
I.E. try something like
Code:
CNOP 0,8
Screen: <blah>
CNOP 0,8
Screen2: <blah>
If you're not using VASM, replace CNOP 0,8 with the correct assembler directive for alignment here.
Note: I haven't read your code in depth so I may have missed something else, but the above is definitely needed for AGA 4x fetch mode to work correctly.