Partial OLED static glitch

I reckon you are running out of dynamic memory and your stack is bleeding into your display buffer. When I compile your sketch I see:

Sketch uses 18800 bytes (61%) of program storage space. Maximum is 30720 bytes.
Global variables use 743 bytes (36%) of dynamic memory, leaving 1305 bytes for local variables. Maximum is 2048 bytes.

which seems fine, but what you don't see included there is the 1k buffer for the display (allocated on the heap using malloc). So free memory is only about 280 bytes. But you are also using a few Strings which also use up heap, and then you have the stack requirements as well.

I would suggest eliminating your use of Arduino String in favour of simple C-style strings. That will mean you will see the memory required for the strings in the memory summary during compilation and will also reduce or eliminate competition for the small amount of residual heap at run time.