Offtopic:
This is a forum, with new and experienced users all together. So some extra explaining and showing what code does will help new users in my opinion.
I admit, it is me. I like the text of the code to be open and spacious.
When someone new shows a sketch, then I want to say: "Don't make such a terrible big mess with the text layout of the code ". But instead I say: "Hello lovely new user
so glad you join Arduino
would you be so kind to press Ctrl+T and make the source code look good ?
".
Ontopic:
I had the same problem in the past. The format string can be in Flash, but parameters can not. So I had to combine strcpy_P() and strcat_P() and sprintf_P().
Could you make a full working sketch ? I'm confused by the properly/hack/fail/edit/resolved in your top post.