Hello Richard, this is Beda, Toolset 2nd Tier 🙂
I tried several times to replicate this and can not, at least, lets say, I can not find a BUG in Toolset.
What I see is an issue with this plugin, but it's not related to the CRED Form, fields or users.
It creates an additional user. And yes, against this user, the Fields are not saved, but this is because the creation of this new user is completely out of our control.
You will notice this:
1. Create the Product, the Form and the Fields as needed and described
2. Visit the Form as a GUEST and submit a User with some hint in it (CREDUSER; etc)
3. It will lead to the Checkout page, where you have to enter billing details
4. Make sure this Name hold a hint for Checkout (Checkout@email.com etc)
5. head to backend and see that this user is already created even if the order is not even confirmed
Nota bene, the User is created with details from the CHECKOUT Page, not from CRED. The CRED user is still hidden!
6. This user does NOT hold the fields values, or any of the details you enter to CRED.
7. Now confirm the Order, and see the CRED user is created!
With all needed fields, and all details you entered in CRED.
Now, we can not change this, because this plugin hooks in it's own way to the user table, creates its own user, and I do not see a way to actually disable that (as it is possible for WooCommerce)
What you now need to do is:
1. Decide what user you are going to use
2. Run a Script on the CRED user Form with our API that deletes one of both users, and updates that' users Meta, with the values you can grab from the form or the User itself.
You can use the CRED Commerce API as example:
https://toolset.com/documentation/user-guides/cred-commerce-api/
I suggest to use the cred_commerce_after_payment_completed hook or the "cred_commerce_after_order_completed"
Let me know if this helps you to achieve your goals