I do have an extremely heavy work in progress that may be of some help.
Haven't looked at it in a while as it was giving me headaches.
The idea is to analyze datatypes based on any combination of:
Finds min and max values or length and returns suggested data types based on that.
Will also display the space requirement difference.
Some big assumptions are made.
Although it's based on my pre-collected table, column, data type tables, it shouldn't be too hard to tweak to only use the current databases only.
For better, quicker answers on T-SQL questions, read Jeff Moden's suggestions.
"Million-to-one chances crop up nine times out of ten." ― Terry Pratchett, Mort