Hi,
About registering steps through C# you could use these entity types: PluginAssembly, PluginType, SdkMessageProcessingStep, and SdkMessageProcessingStepImage. Using these entity types you could create and delete the steps programatically.
About your second and third questions, I didn't see any examples in SDK or otherwhere before, but you may have a look at the FormXML to find out the exact behaviors of the forms. Also, you could programmatically change forms through SystemForm entity. The
FormXMLs are saved in the SystemForms, hence you could retrieve and update them.
My Weblog | My Website