Hi,
I'm not that good at code, but what I suspect is the time writing to the LCD is taking too long for your loop.
For a test:
I would suggest you disable the encoder code. Measure the time of the main loop "mostly the LCD write".
you could use millis() and a loop counter to get the time. Then compare that to the loop time needed to keep up with your encoder.
John