Без подробностей вам будет сложно дать какие-либо конкретные предложения.
Вы можете добавить обработчик событий в приложение ThreadException , чтобы перехватывать любые необработанные исключения. В обработчике событий я бы регистрировал исключение, трассировку стека и любые другие соответствующие данные, которые у вас могут быть. Если вы не используете какой-либо каркас журналирования, вы всегда можете использовать то, что доступно в пространстве имен System.Diagnostics (и необходимые дополнения к вашему app.config), чтобы добавить простую обработку вывода журнала.
Еще одна мысль, которая у меня возникла: вы используете библиотеки пользовательского интерфейса, не предоставленные MS? Если да, включены ли они в ваше приложение / установщик. Предполагая, что ваше приложение использует некоторые из них, а они не включены, это может быть причиной сбоя в вызове InitializeComponent.
Обновление:
На основании ваших комментариев я обновил свой ответ. Вы можете добавить код в метод InitializeComponent, просто имейте в виду, что он сгенерирован, поэтому редактирование представляет определенный риск. Тупой вопрос, но вы проверили, чтобы убедиться, что конструктор даже вызывается? Тот факт, что происходит сбой, как вы описываете, обычно является показателем того, что что-то фундаментальное для приложения отсутствует / неправильно настроено на целевой машине. Вы также можете проверить журнал событий Windows на этом компьютере, чтобы узнать, было ли там что-то полезное для вас.