Я видел эту проблему на моей работе. Если вы откроете свой проект Install Shield и посмотрите на компоненты, для некоторых из них свойство COM Extract at Build будет установлено в yes. Разверните этот компонент и посмотрите на файлы. Щелкните правой кнопкой мыши, чтобы просмотреть свойства. Если для файлов установлен флажок Self Register, это вызовет проблему, которую вы видите. Когда мы пошли и удалили COM Extract at Build из всех наших компонентов, у которых были файлы, самостоятельно регистрирующие проблему, проблема исчезла.
Когда вы устанавливаете ваш продукт на 64-битную машину, он вложит ключ wow6432node в реестр. На 32-битной машине он просто добавляет ключ wow6432node в реестр, который никогда не должен существовать на 32-битной машине.
Таким образом, чтобы прояснить проблему, проистекают из конкретных компонентов, для которых для свойства Com Extract at Build установлено значение yes, а для одного из файлов, содержащихся в этом компоненте, задана самостоятельная регистрация. Это создает wow6432node по ошибке. Ответить на ваш вопрос о том, почему вы видите вложенные ключи wow6432node, немного сложнее.
В вашем случае, я думаю, происходит то, что вы создаете распространяемый файл с проблемой wow6432node. Когда ваш основной установщик переходит к созданию необходимых ключей реестра, он проверяет, является ли машина 64-битной. Если это так, он помещает все под ключ wow6432node. Пока все работает, но потом приходит распространяемый, который содержит ошибку. Затем он устанавливает все в свой собственный ключ Wow6432node, который теперь содержится в основном установщике. Вы можете попробовать это проверить, установив приложение на 32-битную машину. После этого вы должны увидеть только 1 ключ wow6432node, а не вложенные ключи. Этот 1 ключ wow6432node создан по ошибке из-за проблемы, описанной выше, которая содержится в вашем распространяемом файле.
(отредактировано для уточнения)