The error simply means that because your dictionaries all look like this:
{ "Name", (string)d.Attribute("Name") },
{ "MappedName", (string)d.Attribute("MappedName") },
{ "DataType", (string)d.Attribute("DataType") },
{ "length", (string)d.Attribute("length") }
When you adding them to the hashtable the keys it tries to use are:
Name, MappedName, DataType, Length
Once it has added the first dictionary in the results set, those keys then exist so when it tries to add the next one it errors because it cannot add an entry with those keys again.
I would suggest some sort of dynamic approach to key generation to that they are unique each time.