try this
Dont create the instance of the list inside the loop.
List<KeyValuePair<string, string>> kvpList = new List<KeyValuePair<string, string>>();
foreach (XmlNode xn in xmlLabelList)
{
string propert = xn["name"].InnerText;
string label = xn["label"].InnerText;
kvpList.Add(new KeyValuePair<string,string>(propert, label));
}