XML::Simple also tracks 'seen' references so that it can avoid circular references. So if that's what's causing problems for Data::Dumper it will probably cause problems for XML::Simple.
Perhaps YAML might be worth a look (although it will need to track circular references too).