Первая проблема заключается в том, что вы создаете новый список и привязываете к нему данные. Когда вы добавляете элементы, они будут добавлены в коллекцию, но ваш первоначальный список сотрудников останется неизменным.
Чтобы избежать этого, вы должны либо предоставить собственный класс коллекции, который перенесет изменения обратно в базовый список сотрудников, либо подключить соответствующие события (чтобы выполнить миграцию при вставке / удалении) перед привязкой данных к нему.
Чтобы избежать ряда других проблем с привязкой редактируемых коллекций к сеткам, следует реализовать интерфейсы привязки данных, как описано ниже. Наличие этих интерфейсов позволяет визуальным элементам управления уведомлять базовую коллекцию о таких действиях, как «вставка отменена» (когда пользователь прерывает ввод новой записи), и аналогичным образом позволяет передавать информацию в противоположном направлении (обновлять пользовательский интерфейс при сборе или отдельном человеке). изменения записей).
Во-первых, вы захотите реализовать как минимум IEditableObject, INotifyPropertyChanged и IDataErrorInfo для отдельных элементов в коллекции с привязкой к данным, которая в вашем случае будет классом EmployeeGridViewAdaper.
Кроме того, вы хотите, чтобы ваша коллекция реализовала ITypedList и INotifyCollectionChanged. BCL содержит реализацию BindingList, которая обеспечивает хорошую отправную точку для этого. Рекомендую использовать это вместо простого списка.
Я могу порекомендовать Связывание данных с Windows Forms 2.0 для исчерпывающего освещения этой темы.