Maybe you could use the DataForm control(part of the CMS.FormControls namespace). There is a property on there to actually set the class name and alternative form if needed. Then you could access individual fields through getting the EditingFormControls. Also, I think there is a property where you can access the labels as well.
//create new form based off of class name
DataForm customForm = new DataForm();
//use namespace and then class name(test.testing)
customForm.ClassName = "test.testing";
//fetch editing controls, can set properties on if they aren't null
EditingFormControl testfield1= customForm.FieldEditingControls["testfield1"];
EditingFormControl testfield2= customForm.FieldEditingControls["testfield2"];