There are a few threads that talk about this. I started one thread a few years ago asking on how to optimize the program and save programing space.

Try to use a lot of LOOKUPs. Avoid using WORD variables whenever is possible. If the same code is repeated a few times, then create subroutines and use GOSUB.

Saving your fonts and data in an external EEPROM memory is not a bad idea.