Italo,
é o seguinte rodei com debug e nao sei por qual motivo esta passando 2 vezes nestas linhas:
if (MDFe.infMDFe.versao >= 3) and (MDFe.ide.indCanalVerde = tiSim) then
Gerador.wCampo(tcStr, '#027', 'indCanalVerde', 01, 01, 0, TindicadorToStr(MDFe.ide.indCanalVerde), DSC_INDCANALVERDE);
if (MDFe.infMDFe.versao >= 3) and (MDFe.ide.indCarregaPosterior = tiSim) then
Gerador.wCampo(tcStr, '#028', 'indCarregaPosterior', 01, 01, 0, TindicadorToStr(MDFe.ide.indCarregaPosterior), DSC_INDCARREGAPOSTERIOR);
A primeira vez a tag indCarregaPosterior esta atribuido o valor tiNao e na segunda vez já vem atribuido tiSim.
Ja analisei minha rotina e só gera o mdf-e uma vez só pelo comando: ACBrMDFe1.Manifestos.GerarMDFe;