Italo, uma das causas do problema estava no código do pnfsNFSeR, linha 1926... Caso o provedor fosse "nenhum", ele busca os dados da NFSe para identificar o provedor. Porém, ele busca o código do município do serviço, e não o do prestador do serviço, para tal fim. Com isso, em geral ele encontra errado...
Inverti a função que faz esta busca, dando preferência ao código do prestador de serviços, e aqui em Curitiba/PR a situação foi normalizada.
if FProvedor = proNenhum then
begin
if (Leitor.rExtrai(1, 'OrgaoGerador') <> '') then
begin
CM := Leitor.rCampo(tcStr, 'CodigoMunicipio');
FProvedor := StrToProvedor(Ok, CodCidadeToProvedor(StrToIntDef(CM, 0)));
end;
if (CM = '') or (CM = '0') then
begin
if (Leitor.rExtrai(1, 'PrestadorServico') <> '') then
begin
CM := OnlyNumber(Leitor.rCampo(tcStr, 'CodigoMunicipio'));
if CM = '' then
CM := Leitor.rCampo(tcStr, 'Cidade');
FProvedor := StrToProvedor(Ok, CodCidadeToProvedor(StrToIntDef(CM, 0)));
end
else
FProvedor := proNenhum;
end;
if (CM = '') or (CM = '0') then
begin
if (Leitor.rExtrai(1, 'Servico') <> '') then
begin
CM := Leitor.rCampo(tcStr, 'CodigoMunicipio');
FProvedor := StrToProvedor(Ok, CodCidadeToProvedor(StrToIntDef(CM, 0)));
end;
end;
{ Alterado Por Cleiver em - 22-08-2014 }
if (FProvedor = proNenhum) and (Pos('https://nfse.goiania.go.gov.br/ws/'Leitor.Arquivo) > 0) then
FProvedor := proGoiania;
end;