When you have your 10 users in parallel, you're using the same variable (xfaForm or DocumentForm). So you're in fact reusing the same form template from the repository and then render into a PDF.
When the PDF is created, you can merge data with it. That's where I think you should focus your effort. The pdf that gets created doesn't rally matters. It's more a container for the data. You just want to make sure you always get the latest version of the data when it's being merge with the pdf.
Once the users a done filling their form, they're probably going to submit the data and not the entire PDF anyways.
In the render service you're going to use to create the PDF, you could add a step to go and grab the data from a database before creating the pdf. That way every time you open the form in workspace, you get the latest version of the data.
Another way to do it might be to store the data in a completely separate table. Every time the form renders, you go an get the latest data to populate the form. You could also use a web-service call from within the form.
You're really creating a mini-application that gets and saves its data from a separate table.