Thanks T3D, this was my solution:
def holder = new com.eviware.soapui.support.XmlHolder( messageExchange.responseContentAsXml );
holder.namespaces.put("ns1", "http://mynamespace" );
// get the count of how many address hints there are
def count = holder.getDomNodes("//ns1:GetAddressHintsResponse/ns1:GetAddressHintsResult/ns1:AddressHint").length;
// make a new array and populate it with the data we need to check for hint equality
AddressHint[] hints = new AddressHint[count];
for (def i = 1; i <= count; i++) {
def add = holder.getNodeValue("//ns1:GetAddressHintsResponse[1]/ns1:GetAddressHintsResult[1]/ns1:AddressHint["+i+"]/ns1:AddressLine");
def twn = holder.getNodeValue("//ns1:GetAddressHintsResponse[1]/ns1:GetAddressHintsResult[1]/ns1:AddressHint["+i+"]/ns1:Town");
def pst = holder.getNodeValue("//ns1:GetAddressHintsResponse[1]/ns1:GetAddressHintsResult[1]/ns1:AddressHint["+i+"]/ns1:Postcode");
def sub = holder.getNodeValue("//ns1:GetAddressHintsResponse[1]/ns1:GetAddressHintsResult[1]/ns1:AddressHint["+i+"]/ns1:Suburb");
hints[i-1] = new AddressHint(add, twn, pst, sub);
}