Isso provavelmente se deve à versão HTTP em que o IIS está executando o gzip.
O proxy Nginx faz solicitações de backend por padrão pelo HTTP 1.0. A maioria dos navegadores neste momento usa o HTTP 1.1.
Não tenho certeza sobre o IIS, mas o nginx executa o gzip no HTTP 1.1.
Assim, sem o proxy no meio, a solicitação provavelmente está chegando ao backend pelo HTTP 1.1. Com o proxy no meio, o pedido está atingindo o backend no HTTP 1.0.
Tente definir proxy_http_version 1.1
no seu servidor proxy. Isso enviará solicitações de backend pelo HTTP 1.1.
Você só deve gzip uma vez. Em geral, é melhor fazê-lo no aplicativo real (como você está fazendo) para que a resposta gzipped possa ser armazenada em cache por camadas de cache downstream etc. O desenvolvedor do aplicativo deve determinar se o gzip seria ou não benéfico sobre o tamanho da resposta, se é compressível, etc). Então, eu recomendaria desativar o gzip no seu proxy.