Don't use any PROGMEM, F(), PSTR(), pgm_read_...() and ..._P() at all.
Make a sketch that shows the problem, and show us the sketch. Then we can help.
If you want to write compatible code that also runs on a Arduino Uno, then we can help, but you first have to fix the bug.
I think your question is this: Can I get the size of an array from a pointer ?
The answer is: No, not in plain good old 'C' code, and Yes, there are multiple ways in 'C++'.