It should be something along the lines of this:
$GroupList = @{"Mickey" = "mouse";"Minnie" = "mouse";"Goofy" = "dog"}
$xml=[xml](get-content .\yourfile.xml)
$xml | Select-Xml -XPath '/agentList/newAgent/agentData' | foreach-object{$_.node.removeall()} #clear group section
$groupNode = $xml.createelement("group")
foreach ($description in $($GroupList.keys))
{
$descNode = $xml.createelement("description")
$descNode.setattribute("value",$description)
$groupNode.appendchild($descNode)
$valueNode = $xml.createelement("value")
$valueNode.setattribute("value",$GroupList[$description])
$groupNode.appendchild($valueNode)
}
$xml.selectsinglenode("agentList/newAgent/agentData").appendchild($groupNode)
$xml.save("C:\YourPathHere\test.xml")
** This code assumes that the "group" element is already existing in ".\yourfile.xml".