OP, I like your thinking...
As a learning experience this has a lot of traps & hidden gotchas - will make you think! and certainly learn!
Since you’re on the way now, apart from the potentially complex UI issues, you must consider how you’re using RAM as Robin2 commented.
The SD card is a good idea too, but relatively clunky for a non-linear process like WP.
Perhaps implement a RAM buffer that acts as a ‘window’ into the SD, and only update those ‘differences’ when you move. Although that could be tricky if the contents don’t always match the window size...
Or, maybe a scratch buffer that maintains chunks of text, and a pointer for each chunk to it’s position within the SD file. Only when the buffer is flushed would the SD contents be reconciled ? Also tricky, but relatively logical to cleanup the target file before the scratch buffer fills up.
A tricky and Quite Interesting challenge!