Interesting idea...
We use SqlDataRecord and SqlMetaData to populate the rows of the table type in C#. I suppose the C# could look up the columns and add any that aren't already defined in SqlMetaData as nullable columns... it doesn't solve our problem today, but it's definitely an option. Thanks.