U8g2.print() o u8g2.drawStr() sovrappongono i testi

No: il risultato è perfetto e riscrive solo i punti del carattere. L'ho fatto nel magnetometro. Per riscrivere è sufficiente copiare la riga della scrittura e sostituire WHITE con BLACK e la variabile con quella che contiene il valore precedente.
Notate le righe contenenti BLACK e quelle contenenti WHITE che, in realtà, è ciano o giallo secondo la zona del display: