ОК, я нашел это. Я понятия не имею, как это случилось. Однако это может быть полезно на будущее. MainForm имеет ряд файлов, содержащих разные части класса. Основная часть имеет весь дизайнерский код и так далее. Каким-то образом файл .resx был создан в одном из файлов частичного класса вместе с методом InitializeComponent (). Удаление лишнего файла .resx сводилось к тому, чтобы сообщать о дублирующемся методе, а удаление позволяло скомпилировать решение снова. Кажется, что, хотя имена файлов различны (ошибка была в MainForm.EventHandlers), два файла resx обрабатываются как одинаковые, даже если они имеют разные имена.
Сейчас я получаю некоторые исключения, но, по крайней мере, могу снова запустить код в отладчике.