IM: Emitimos nfce no app desktop e nunca informamos inscrição municipal
vFrete: NFCe não tem frete
vSeg, vDesc e vOutro: São opcionais
Todas estas informações estão como opcionais na documentação, mas não sei se estou errando em algo, analisei o json e não me parece que tenha uma info que obrigue tais informações.
A forma correta de não informar o valor de campos opcionais é não os incluindo na requisição. Portanto, basta removê-los do JSON para resolver os erros de validação.
Então é porque o campo em questão, apesar de ser opcional, não possui restrição em relação ao valor zero.
Em todo o caso, a sua confusão é compreensível, pois as validações aplicadas em cada campo do JSON não estão descritas de forma totalmente clara em nossa documentação. Melhoraremos isso no futuro.