With all those delay() function calls in the loop(), your scrolling text will be a misery to watch.
I'd probably write a function which takes a buffer matching the whole text you want to display, say XX characters, which, when called, simply writes out 16 characters (your display line length) from the buffer to the display and advances a pointer by 1, so the next time it is called, the text in the display appears shunted by one character.
The function would be called at say half second intervals by a timer ( see: ticker() for ESP8266 ) so the scrolling rate would be independent of any delays etc. in your loop.