Yeah... the EDIT page is just showing plain text... NOT rendered... while the PROFILE page IS rendered.
Stripping out the "new lines" - This was most likely done because different OS's do it differently. DOS/Win uses both a CR+LF. Others use ONLY the CR. Others use ONLY the LF. More, if you strip out or ignore ALL three options, then the browser can very effectively do the same thing as "word wrap", scaling for different screen/window and frame widths.
As for how to handle it in the profile window...
Read the "text" into a memory buffer, like a string variable. In the buffer only, change all CR+LF to a "<br />", then do the same for LF+CR, then do the same for any remaining CR's, then for LF's, then pass ONLY that variable/buffer to the HTML rendering engine, as if it were the original text, which would then preserve the ACTUAL original text, thus not having any effect on the EDIT page.
More... the "BIO text" is probably ALREADY being read into a dedicated variable/buffer, so that part wouldn't even need to be new.
(Heck, I've done this before in the past, in BASIC and even freaking REXX!.. and REXX is just a powerful scripting tool, NOT a real programming language... think of it as a sort of more powerful DOS batch file. The REASON I did it was because I had to convert UNIX-formatted text files into something that I could work with on my DOS-based PC.)