Uno R3 + 20x4 I2C LCD - screen freezes / garbage

As I said, calling functions requires memory, the function each has variables that take more memory. You need to call free memory inside of a function. Simply redirecting lcd message to serial port will also be a good idea to see if the I2C LCD or library of it is making trouble.