Arduino Uno Linduino(DC2026C)

Here's the memory object size summary for (approximately) your sketch (wit TOTAL_IC=3)

00800110 00000012 d vtable for HardwareSerial
0080018e 00000036 b discharge_stat
008001d0 00000040 b ui_buffer
008004ee 0000009d b Serial
00800635 000000aa b stat_print
0080058b 000000aa b update_vol
0080023f 000002af b BMS_IC

It looks to me like each BMS_IC is about 230bytes, and each "Timer" (stat_print, update_vol) is 170 bytes.

since those are from libraries that are more-or-less out of your control, I don't think there is a lot you can do to your sketch to improve the memory consumption.