Thanks for the kind words Juraj.
I can get a vsprintf with fixed va_args to work but still gives me the same problem to solve that I started with.
In the interests of moving on, I think I will just build it one at a time as suggested so I can get on with the rest of the project.
Thanks again.