2a) I can't replicate your problem with the uploda error messages, I get the current step re-shown. I will test again.
Just enable file upload for mother form and you will be back to first form if upload fail. The reason we must enable it here is as I have explain: if upload component in 2nd form, and we have 3 steps, then data from upload component can not be inserted to DB. All my test show this result. To solve this we need upload enable in mother form.
3) Makes no sense to me at all, activating and deactivating the plugin in the mother form doesn't change anything at all as far as I know. When you say "missing new field in child form to DB" do you mean that you have to add the new field to the database table. If so that's correct, ChronoForms won't automatically add new fields to the database table for you.
I will explain in detail. In dbclasses field of mother form in #_chrono_contact, we have auto-generate code for field insert. However, if we have a new field in child form, dbclasses is not updated. So de-activate and activate plugin help re-generate code in dbclasses make mother form update to what s new in child form. Field in database must be added by hand is not what I mention here.
4) I don't understand 4 either. Or is it that you have created a different table for the child and have that set in the child. That makes sense but it's not a bug with ChronoForms.
For example you have 3 steps form. In 1st child form, if you have a DB selected, mean that tablenames=A_TABLE_NAME value in paramsall field of #_chrono_contact. Even if we have no data storage for this child form, the data still be inserted in DB after 1st step finish. I give solution is delete A_TABLE_NAME in database.
And now in 3rd child form (mean last child form in my example). Even it has NO tablenames, if there is auto-generate code, data still be inserted for this child form. And then, mother form, mean duplicating data.
You could test and see what I mean 😀