Не устанавливайте более одного столбца в DataGridViewAutoSizeColumnMode.Fill, это вызывает проблемы, потому что все столбцы с заполнением хотят занять оставшуюся часть пространства одновременно.(У меня были проблемы с этим в прошлом.)
Установите все столбцы в DataGridViewAutoSizeColumnMode.DisplayedCells (или другой режим без заполнения) и установите только один из них в DataGridViewAutoSizeColumnMode.Fill так, чтобычто один будет использовать оставшуюся часть пространства.
DataGridViewAutoSizeColumnMode Enumeration
https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewautosizecolumnmode%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
Member Name Description
AllCells The column width adjusts to fit the contents of all cells in the column, including the header cell.
AllCellsExceptHeader The column width adjusts to fit the contents of all cells in the column, excluding the header cell.
ColumnHeader The column width adjusts to fit the contents of the column header cell.
DisplayedCells The column width adjusts to fit the contents of all cells in the column that are in rows currently displayed onscreen, including the header cell.
DisplayedCellsExceptHeader The column width adjusts to fit the contents of all cells in the column that are in rows currently displayed onscreen, excluding the header cell.
Fill The column width adjusts so that the widths of all columns exactly fills the display area of the control, requiring horizontal scrolling only to keep column widths above the DataGridViewColumn.MinimumWidth property values. Relative column widths are determined by the relative DataGridViewColumn.FillWeight property values.
None The column width does not automatically adjust.
NotSet The sizing behavior of the column is inherited from the DataGridView.AutoSizeColumnsMode property.