How to tell where a variable is stored?

You could possibly treat your PROGMEM stored data as the default and your buffers in SRAM as... buffers only. If you only want 1 buffer for printing then you could keep the pointer in PROGMEM where that was last copied from and then you could avoid copying data you already have but -- make it a NULL pointer if you change the buffer contents at all.

That way the only stored pointers you deal with for that purpose are in PROGMEM. With one or limited buffers you don't need pointers in SRAM as indexes at most should do.