Similar situation. Multiple customized forms with some hidden custom fields.
* For one project we want to users to be able to see customfield1 but no customfield2.
* Another project we want customfield2 but not customfield1 to be visible.
We can't forbids users to edit customfields because there is one global edit form which has to have all customfields visible.
= Solution =
There should be association of "create-edit form" - for every "create form" should be possibility to choose "edit form" between custom one or default one.