Forms are a tricky beast, and can be dangerous in the wrong hands. We use Google Docs within our company, and the amount of internal forms that get sent around with checkboxes where there should be radio buttons and vice-versa. I would be very cautious about giving too much control to the untrained user.
The approach I would take is to discuss with your team and potential end-users, the types of questions that would generally need to be answered. I would then just have a set of these optional questions listed that can be enabled by using a boolean checkbox. This way, the wording of the labels etc. are all carefully written and crafted by a professional (you). Choice is given, but it is not a free-for-all.
Locking down the mandatory fields is great, and good on you for doing that.
Some observations of your wireframe: I realise this is likely work in progress, but as you have presented a mockup, I will provide my honest opinion. I am not a fan of asterisks to mark a field as mandatory. They have no contextual or semantic meaning, and on the mockup you haven’t introduced what the asterisk signifies. I am much more akin to Luke Wroblewski’s approach to handling this with an intro message.
All fields are mandatory unless stated as optional.
Now, I know you are giving the users the option to set whether a field is mandatory or not, so you could set some logic so that if more optional fields are set than mandatory, the message changes accordingly. Then the fields that are opposite to the message will have ‘optional’ or ‘mandatory’ in parentheses after the label.
Lastly, consider carefully whether having the labels inside the text-fields is the best approach. If the form has the potential to have a number of fields, increasing its complexity, you would probably improve the usability by placing the labels outside of the text-fields. A rough guide: labels on top of fields are for known information and speedy entering with linear eye-trail, left-aligned labels are for uncomplicated but unknown info that we need the user to think about, right-aligned labels can be jarring on the eye but are good for slowing the user down and really making them think about the information they are entering.