Well, probably the easiest way to go here is to expand the ROM (insert 0x10000 bytes at 0xC010, update the iNES header to specify 8 PRG banks [set 0x4 to $08]). After that, it looks like changing a mere 18 bytes (19 if you count the iNES header change) is enough to get the game to flip between reading from the original and expanded banks as appropriate.
When reading text, the relevant bank swaps are controlled from:
0x7558 (when finding the pointer to the right group of strings)
0x756E (when scanning through the group of strings looking for the start of the desired string)
0x7689 (when reading the desired string)
There's no need to change the first bank swap, since storing all the pointers in the original bank isn't a problem. For the other two bank swaps, there's a convenient block of 4 bytes that do the same thing in both places, so those are ideal spots to overwrite with a hook to some new code located in some unused space in the fixed bank (original bank 3, new bank 7):
0x756C and 0x7689:
EA NOP
20 54 FF JSR $FF54
Alas, by the time that code runs, the memory that told us which string the game wanted to read has already been overwritten, but there's a completely pointless AND #$F0 (pointless because it's immediately followed by 4 LSRs and there are some ASLs before the next time C matters) back when that information was still available, so we can steal that to store the high byte of the string number in an unused byte of RAM:
0x7544:
86 E1 STX $E1
In the new code to handle selecting which bank to read from, we just read that high byte of the string number (i.e. 0 or 1) and add 2 (to get 2 or 3) to get the bank to read from, then do the LDX from the code that we overwrote to hook in to this new code:
0x1FF64:
A5 E1 LDA $E1
18 CLC
69 02 ADC #$02
A2 9F LDX #$9F
60 RTS
After that, you'll want to insert the first 256 strings into the original bank (2, a.k.a. 0x8010-0xC00F; they'll all fit with DTE compression), the other 42 into the new bank (3, a.k.a. 0xC010-0x1000F), and... voilà! I played around with it for a couple of minutes and everything seemed to be working okay, though you'll definitely want to add some more breaks in the text, since some of the longer sections take up more than a full window and cause the first line(s) to scroll out of view pretty quickly.
Edited to correct which byte to alter to update the PRG size.