Olha só, vou explicar como consegui fazer a SEFAZ retornar OK.
Recebemos o .xsd atualizado (que estava com erro) e geramos uma classe .cs a partir dele. Como o .xsd estava errado, a classe gerada também ficou errada, então precisei modificá-la manualmente.
Nosso sistema é em C#. Se eu validar meu XML usando esse .xsd, ele pode retornar o mesmo erro que você está recebendo. Por isso, por enquanto, não estou validando com o .xsd e estou enviando direto para a SEFAZ. E assim eles retornaram OK.
Porque, comparando o seu XML com o meu, eles estão idênticos.
NF-7029.xml