Hello from The USA!
What you need is a new True/False Boolean field in the form. For the purposes of my explanation, let's call this field Locked. The default value for Locked should be FALSE. Now, add a rule to your Submit button that sets Locked to TRUE when the button is clicked (i.e. no condition).
Now for each field you want locked forever, add a calculated value control and bind it to the field. So for each field, you will now have two controls bound to it: the one you already have created, and the new calculated value. For each of your existing controls, add a formatting rule with the condition Locked is equal to true(), and check the "Hide this control" checkbox. For each of the new calculated value controls, add a formatting rule with the condition Locked is equal to false() and check the "Hide this control" checkbox.
So, as long as Locked is equal to FALSE, the original calculated value controls will be hidden and your original controls---which are editable by the form user---will be displayed. Then once the user clicks the Submit button, Locked is set to TRUE, and the next time the form is opened the calculated value controls (which are not editable) will be displayed and the original editable controls will be hidden.
Let me know if this makes sense.