I am wondering why you want to do this with t-sql?
Assuming you have somehow discovered your servers with sql server services, og just have a list of instances you want to check, I would use powershell and smo to run through the instances and collect instance properties for product, productlevel, edition, and maybe versionstring (look through the properties and see which you're after).
Getting them from a single instance would go something like this:
$inst=new-object microsoft.sqlserver.management.smo.server "insert your instancename here"
#assumint integrated security can be used, else youll have to make a connection object
$inst | format-table Name, Product, ProductLevel, Edition, VersionString -AutoSize
For a list of instances, you'd have to put them in an array or write them to somewhere for review... youll have to look into some more powershell for that
Hope the idea helps you - this is how i've collected my instance information.