As you have discovered the task is relatively simple if the text does not contain formatting changes & special characters.
the explode should produce manageable plain text. Once you have that you must parse the remaining strings using space as
the delimiter. Then use a pointer to hold the location of the text initially. This also can be troublesome if not LEFT justified.
Then use TextBox to get the the end of that piece of text. You may need to strip the special character before using textbox.
Then increment your pointer to place the next word. Note that Tim Willey had lisp that dealt with text positions, I'll see
if I can find it. Also I would use the style & size from the original (plain text) to Entitymake the new words.
A quick look at your code & you have most of this done.