Boa tarde @Italo Giurizzato Junior, muito obrigado.
Sobre a leitura, fiz com base no arquivo de gravação do XML:
case NFSe.tpEmit of
teTomador:
Result.AppendChild(AddNode(tcStr, '#1', 'cLocEmi', 7, 7, 1,
NFSe.Tomador.Endereco.CodigoMunicipio, ''));
teIntermediario:
Result.AppendChild(AddNode(tcStr, '#1', 'cLocEmi', 7, 7, 1,
NFSe.Intermediario.Endereco.CodigoMunicipio, ''));
else
Result.AppendChild(AddNode(tcStr, '#1', 'cLocEmi', 7, 7, 1,
NFSe.Prestador.Endereco.CodigoMunicipio, ''));
end;
Pelo que vi nas alterações, foi adicionado a propriedade cLocEmi, junto disso a leitura da tag direto para essa propriedade, porém no arquivo de gravação, a alteração foi apenas para gravação do arquivo ini:
AINIRec.WriteString(LSecao, 'cLocEmi', NFSe.cLocEmi);
A gravação do XML parece estar usando ainda o código que mencionei usar de base acima, com isso ao carregar um XML com cLocEmi preenchido e sem o endereço do prestador, ao usar a função de Emitir, ele vai gravar o XML novamente, e com isso vai tentar pegar a informação do cLocEmi no endereço do prestador, que vai estar vázio.
Fiz a alteração para que a gravação do XML seja feita usando a propriedade cLocEmi, não mantive o código acima com o case.
PadraoNacional.GravarXml.pas