Looks good and feels like a "modernization" that makes sense.
If you are able to disable the "mirroring" of the bottom 8K at the top, the existing expansion ROM code could all be moved up to the upper 16K with the right reset/interrupt vectors in the upper 6 bytes (pointing to the lower ROM). I don't know of anything other than maybe a couple of exercises in the various books that needs memory to be mirrored like it is. In that configuration you'd have the traditional 8K at the bottom, then 40K of RAM, then 16K of new ROM (with the upper 6 bytes point to the right addresses in the lower 8K). The reality is that you can't really use the upper 8K as RAM unless you do some trickery around handling the reset vector.
The flexibility you have to map in the RAM would be nice. I used a RAM chip in my ROM breadboard tests because it let me upload and test code without burning a new ROM every time.
I like the way it looks!
Thanks,
Jim W4JBM