CreatePropertyпросто возвращает вам отражение, основанное PropertyDescriptorна рассматриваемом типе (это не AddPropertyтак). Каков сценарий здесь? Если вам просто нужно отобразить дополнительные данные DataGridView, самым простым вариантом является просто добавить дополнительный разделительный столбец в сетку.
Вы можете расширять типы во время выполнения, но для списков вы имеете два основных варианта:
ITypedList(если каждый экземпляр списка может иметь разные столбцы) - см. этот ответTypeDescriptionProvider- позволяет добавлять пользовательские свойства для каждого типа (в конечном счете сводится к написаниюPropertyDescriptor, как и в первом примере, - но разные крючки)
В этом ответе приведены полные правила использования метаданных на основе списка.