Если сбой воспроизводим, возможно, стоило бы настроить отладчик на прерывание всех исключений (возможно, как собственных, так и CLR) перед закрытием приложения. Часто сбой может быть вызван более ранней ошибкой, так что это может дать вам подсказку.
Вы смотрели файлы дампа доктора Ватсона? Обычно они должны сказать вам, по крайней мере, какой модуль вызвал проблему. Если бы вы имели дело с нативным кодом, вы могли бы загрузить файл мини-дампов, предоставленный доктором Уотсоном, в Visual Studio, и, имея на этом компьютере файлы с отладочными символами и исходным кодом, вы сможете увидеть состояние вашего приложения по адресу время сбоя, стек вызовов ошибочного потока и строка кода, которая вызвала сбой. Я понятия не имею, что происходит с управляемым кодом, но, возможно, стоит попробовать.
Эта ссылка должна дать вам больше информации об анализе файлов мини-дампов.
Ссылка на CodeProject