Aqui está o que eu faria. Primeiro, verifique TRIPLO se você está vendo o comportamento que pensa estar vendo. Eu posso ver isso acontecendo ao contrário, não usando System.IO.Path para concatenar caminhos, mas não como você está vendo. Verifique três vezes se as permissões do arquivo fazem sentido.
Em seguida, baixe o Filemon do MS e observe o que está acontecendo no sistema de arquivos enquanto seu programa atinge esses pontos problemáticos. Você pode filtrar a atividade de arquivo específica (remover sua atividade de arquivo antivírus, por exemplo) para tornar tudo um pouco mais limpo enquanto você faz isso. Procure erros de acesso a arquivos usando o FileMon tanto para o caso de sucesso quanto para o caso de erro do seu programa. Isso deve apontar para qual arquivo está sendo acessado e causando o problema. Por exemplo, se você vir um
FILE_NOT_FOUND
erro ao acessar um nome de arquivo sem sentido, você pode ter certeza de que você ou o fornecedor está fazendo algo errado, possivelmente levando ao seu problema...