Question about .available()

From what I understand the serial.available() reports how many characters are available in the buffer, so checking if(serial.available()) will return TRUE is 1 or more characters are in the buffer.

No. Serial.available() returns the number of bytes available to be read. It does not return TRUE or FALSE.

It is also my understanding that reading the character from the buffer, serial.read() will remove that character from the buffer so once the character is read, the if statement should return false.

No. Reading a character will reduce, by one, the number of bytes available to be read.

We do, of course, need to know about what LCDserial is an instance of.