Справился сам ). Дело оказалось не в спецификации и не в листе, а в том, что у меня в какой-то момент при выполнении кода возникала ошибка, но я об этом и не подозревал. Потом обратил внимание, что в Выводе регулярно пишется "Вызвано исключение: "System.ArgumentOutOfRangeException" в mscorlib.dll". При этом в отладка на эту строку не переходит, и это место не обрамлено try-catch. Очень странно! Возможно, так получается из-за того, что ошибка находится в коде обработчика внешнего события. Сама ошибка заурядная, пытался в DataGridView выделить строку, индекса которой не существовало.
Сейчас всё работает.