I have one problem though: although line 13 clears the LCD, the LCD isn't cleared on lines 9 or 15. Please help!
If the method works in one place, it works in all places. Something happens after the clear that makes you think it doesn't work. Since we can't see what you see, and you didn't describe what you see, we can't help you.
One thing to keep in mind is that serial data arrives ssslllooowwwlllyyy. You assume that an entire packet will arrive all at once.
I did LCD.clear(); , then used the string instead of doing it all at once.
I don't see any strings (NULL terminated array of char) in your code. I only see a String, which is not the same thing.
I don't see anything in this statement that describes what you see on the LCD.
I don't see anything in this statement that describes what you are doing about the fact that serial data arrives slowly, and you are expecting that the entire packet will arrive at once.