I have tried using the Shape Tracer to generate an alternate file for me for each of my fields, however I am having a hard time with what the model class should be, it appears to be a ShapeProxy class of some kind.

Someone suggesting using dynamic as the type, i got a little further with this however there is a nested Model property to get to the actual properties...such as:

I noticed i can override the template for the whole form too rather than individual fields and it gave me a default template like so:

@usingOrchard.ContentManagement;@{ContentItemcustomForm=Model.ContentItem;stringreturnUrl=Model.ReturnUrl;// remove default Save/Publish buttonsModel.Editor.Zones["Sidebar"].Items.Clear();}@using(Html.BeginFormAntiForgeryPost(Url.Action("Create","Item",new{area="Orchard.CustomForms",id=Model.ContentItem.Id}))){@Html.ValidationSummary()// Model is a Shape, calling Display() so that it is rendered using the most specific template for its Shape type@Display(Model.Editor)@Html.Hidden("returnUrl",returnUrl);<fieldsetclass="submit-button"><buttontype="submit"name="submit.Save"value="submit.Save">@T("Submit")</button></fieldset>}

Can i override the @Display(Model.Editor) to custom html, how would i call the Html helpers for each field?

No, that won't work, you'll have to use the helpers that don't take a Lambda: Lambdas and dynamics don't play nice together. If you want strongly typed, just build a view model like you would in regular MVC.