Yes, this is this the expected behaviour. When multiple values are assigned to the same hash key, each new value will overwrite the previous one.
You might be better off switching to XML::LibXML. This article compares the two modules.
Since your XML uses namespaces, you'll also need to use XML::LibXML::XPathContext.
Either the Perlmonks web site or the Perl-XML mailing lists are better places to get help.