Hi Rob,
The 12x16 font now works fine, the error was on my side, the hex file worked fine as expected.
After compilation of your program it went wrong again.
After investigation, the glcd_font lib turned out to be corrupted, so I apologize for the inconvenience.
I have looked at the I2C lines, and also see that interference signals are
getting bigger as the voltage increases between 3 and 5 Volts.
What I also noticed was that the pulses were not very steep,
which is of course due to by the weak pullups.
After placing 2 x 4k7 resistors it looked much better and realized a more stable data transfer.
I noticed that the display regularly fails at 5V, after placing the resistors everything worked well at 5 Volts.
According to my info there is some kind of voltage regulator on the display board which would make it applicable from 3 to 5 Volt.
Many thanks for the good work,
Kind regards, Bill.