Is there a solution that actually fixes the problem, rather than working around it?
Depende inteiramente de como você define "o problema". A meu ver, "o problema" é que alguém decidiu que seria uma boa idéia incluir caracteres especiais no caminho do arquivo de seu software, apesar de ser uma má idéia fazê-lo. (Ele não está sozinho, se isso faz você se sentir melhor ... ou pior.) Como resultado, você não pode simplesmente passar esses caminhos para o IIS, porque ele rejeita caminhos com certos caracteres por padrão, como uma medida de segurança (para proteger contra URLs criadas com códigos maliciosos).
No caso geral, uma possível "correção" para isso que não envolva renomear os arquivos é desabilitar esse recurso de segurança na configuração da web do aplicativo (permitir Double Escaping). Mas como isso deixaria você vulnerável a URLs criadas com códigos maliciosos, não tenho certeza se vejo isso como uma correção, mas como uma solução alternativa com uma grande falha de segurança anexada. Desde que você não pode fazer isso, é em grande parte acadêmica de qualquer maneira.
Suas opções básicas são alterar as configurações do IIS para permitir caminhos que contenham +
ou, de alguma forma, remover / ofuscar +
no caminho. Desde que você é incapaz de fazer o primeiro, a única opção que você tem é o último. Por que vale a pena, criar um arquivo auto-extraível a partir do aplicativo problemático parece ser mais fácil de automatizar, e é isso que eu gostaria de fazer.