My only grumble might be.....
#ifdef WITH_LCD
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print(value);
#endif
The ensuing code doesn't know the display size, so doesn't know how many spaces to overwrite .....
perhaps it could be
#ifdef WITH_LCD
lcd.clear;
lcd.setCursor(0, 0);
lcd.print(value);
#endif
Depends on the context.
Allan