switching colors in PROGMEM stored icons

The SmartMatrix library has probably got everything you need. But my brain hurts when I try to read it.

It is not even very clear what sort of LED matrix it is supposed to drive.
A raw matrix requires multiplexing, complex timing etc.

A TFT controller does all of the hard work. You just need to extract dimensions, palette etc from the header field(s) and extract the LZW compressed bitmap.

Incidentally, I guess that you are a Brit. No one else would want an MG.
You can buy ESP32 hardware from UK/EU vendors. Costs more but arrives in 24/48 hours.

David.