Thanks for the reply, I'm pleased to say that I actually figured out what was going on as byproduct of looking to post a shortened version of the code here - as the original was quite complex/long!
Here is a little info on the issue I had just in case someone else runs into the same problem as me:
My original code was getting the screen commands from a PHP page, even after simplifying that page to just send 2 lines of text instead of the original content the end result was the same, i.e. that Line 10 was shown on the first line and not on Line 10.
I then tried sending the exact commands I was expecting the PHP page to send from the ESP01 to the screen directly and things worked perfectly.
i.e. Using the following. uart.write(0,"CLSD1TP",0x00, 0x05, "TTLine 5", 0x00 , "TP" ,0x00, 0x0a, "TTLine 10", 0x00)
This pointed towards a coding error (as you suspected), so I added debug code to do a hex dump of the response from the web server and also the result after parsing and realised that my code was (technically correctly) interpreting the line 10 byte (0x0a) as a line feed causing it to split the string at that point, meaning the byte that specified line 10 in the string was no longer being sent to the screen at all!
Realising this I have now modified the code to parse the web servers response in a different way so that CR and LF are preserved and everything is now working as expected.
If you had not asked for the code I think I may have been debugging the more complex code for a while before I actually got to the crux of the issue, so you have saved me some time here! Thank you for the quick response to my issue and for the great outcome, I have to say I am very impressed with your customer service!