So, I do not have much experience with SQL2012, but I have the predicament of I need to have numerous different contracts with numerous different fields on each contract. This is never fun in SQL as it's not a database that is meant to thrive with these scenarios.

I can see a couple of ways to aproach this. If you wanted to have a (semi) ridged way of defining all the attritubes (fields) on a form. Then doing as you suggested with a Doc -> DocFields tables set would work. You could also go slightly further and define data types and acceptable vales/ranges of data too. Another possible option is to use XML/XSLT to define that. but, again, I'm not 100% sure of your goal or what the front-end needs in order to drive behavior.