Immediately after this signature there are two bytes, 0x61 and 0x2C in this example. This is the length of the archive, read it as 0x2C61 = 11361 bytes.
The archive starts with the next bytes, 0x22, 0x43, 0x2D etc. and ends at offset 0x4E47 + 0x2C61 = 0x7AA8.
So the last bytes belonging to the archive are 0xA1, 0x93, 0x92. With the byte 0x55 program code starts.
Now you can simply overwrite the bytes from offset 0x4E47 up to (but not including) offset 0x7AA8 with your own LHA archive. Please remember, your archive must not be longer than 11361 bytes. And really overwrite the bytes, do not cut out the existing bytes and then insert your own bytes. The bytes at offset 0x7AA8 and above must remain intact at their specific location. Or, in other words, do not change the total length of TextViewer.bin, e.g. for v1.20 it must remain exactly 62100 bytes.
Please note: the above example matches version 1.20 only, further versions will contain the archive at a different offset. Versions older than 1.20 do not have such an internal archive at all.
You are encouraged to publish versions of TextViewer.bin with altered internal archive. Please drop me a note, if you do so ;-)