Я полагаю, что причина проблемы в том, что вы используете имена полей, такие как "Id", "Company", "Description", но сетка сопоставлена с именами полей "id", "name", "description":
gridView1.SetRowCellValue( i, "Id", other[i].id);
gridView1.SetRowCellValue( i, "Company", other[i].name);
gridView1.SetRowCellValue(i, "Description", other[i].description);
Также передача значений ячеек строки непосредственно в представление и обновление сетки после добавления каждой записи является очень избыточным. Достаточно одного вызова метода RefreshDataSource после загрузки данных:
internal void load_all_companies(List<DataLibrary.Companies> other) {
for(int i = 0; i < other.Count; i++)
companies.Add(other[i]);
gridControl1.RefreshDataSource();
}