Things to keep in mind:
Control registers for the memory card(s) will not be in the $C000 space due
to the Z-80's address line translation (Microsoft card anyway, not sure
about some
of the others: Starcard etc.)
Need to ensure that Bank 0 , pages 0 and 1 (6502) are not switched out when
the
6502 'wakes-up' to do a memory refresh.
Likewise, your video routines will need to be smart enough to bring in the
appropriate
memory banks if you are using Apple2e 40 or 80 column mode. Probaby best to
keep track in the BIOS of what bank is currently switched in.
Using a videx or similar 80 column card would be a damn sight easier to
implement
with multiple memory banks.