Boa tarde Italo,
O problema estava exatamente nesse trecho do código acima e o método Add não estava atribuindo os valores das propriedades e tivemos que usar a propriedade Items[0] para atribuir os respectivos valores e a integração do CT-e com Sefaz funcionou corrretamente.
Veja como ficou o código:
{with ACBrCTe.EventoCTe.Evento.New do
begin
infEvento.nSeqEvento := 1; // Para o Evento de Prestação do Serviço em Desacordo nSeqEvento sempre = 1
infEvento.chCTe := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44); //dtmNFEntradas.cdsManifestacao.FieldByName('NFE_CHAVE').AsString; //
infEvento.CNPJ := dtmMail.cdsFilial.FieldByName('CNPJ').AsString; // CNPJ do Tomador
infEvento.dhEvento := now;
infEvento.tpEvento := tePrestDesacordo;
infEvento.detEvento.xObs := trim(edtJustificativa.Text); // minimo 15, máximo 255 caracteres
infEvento.versaoEvento := '3.00';
end; }
//iLote := 1; // Numero do Lote do Evento
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.nSeqEvento := 1;
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.chCTe := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44);
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.CNPJ := dtmMail.cdsFilial.FieldByName('CNPJ').AsString;
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.dhEvento := now;
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.tpEvento := tePrestDesacordo;
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.detEvento.xObs := trim(edtJustificativa.Text);
ACBrCTe.EventoCTe.Evento.Items[0].InfEvento.versaoEvento := '3.00';
ACBrCTe.EnviarEvento(1);
Muito obrigado pela ajuda.