Звучит довольно сложно. Я никогда не пробовал обновлять MSI на лету, но в аналогичной ситуации мы делаем то, что включаем изменяемую информацию (например, файлы конфигурации) в виде несжатых файлов рядом с MSI, затем обновляем их и заархивируем все в самораспаковывающийся исполняемый файл. который затем доставляется запрашивающей стороне.
Это не слишком медленно, но я бы не стал использовать его с 10 000 загрузок в день.