Not sure if this is still a relevant question, but I just received an answer to something nearly identical. Check out the answer for this question:
Retrieve UDT table structure in VB.NET
The answer shows how to get a "sanitized" type name from sys.types, then it creates simple sql query in the form:
declare @t MyUDTType; select * from @t;
Then returns the empty DataTable
to the calling application.