Потому что вы торопитесь добавить ряд в "places_data". В начале собрали все "PlaceId" и добавили их в "places_data", потом все "CountryCode"... (повторяете для каждого заголовка) от этого и получается такая "лестница".
Кажется это должно сработать:
for place in root.findall('Place'):
row = {}
for identity in place.findall('Identity'):
for placeid in identity.findall('PlaceId'):
header.add(placeid.tag)
row[placeid.tag] = placeid.text
for locationlist in place.findall('LocationList'):
for location in locationlist.findall('Location'):
for address in location.findall('Address'):
for parsed in address.findall('Parsed'):
for countrycode in parsed.findall('CountryCode'):
header.add(countrycode.tag)
row[countrycode.tag] = countrycode.text
places_data.append(row)