The column default cell is an object whose properties are copied into all new cells. When you call the FillFromRS method the first time, the method creates columns and populates the grid, but the ColDefaultCell object does not contain required settings for cell properties by that time. Actually you set them after the cells have been created, and that's why you do not see the effect the first time.
To fix the problem, you need to ask FillFromRS to create only columns for the specified recordset first, then set the required column default cell properties and add rows to the grid after that. To implement the first task, use the 2nd parameter of the fillFromRS method that allows you to specify population mode. Use the igFillRSRecreateColsOnly mode.
The corresponding part of code that defines columns and populates iGrid should look like this:
.FillFromRS rs, igFillRSRecreateColsOnly
For l = 1 To .ColCount
Select Case .ColHeaderText(l)
Case "START", "FINISH", "ACTUAL START", "POSSIBLE START", "CLOSED"
.ColDefaultCell(l).eAlignH = 2
.ColDefaultCell(l).sFmtString = "yyyy/mm/dd"
End Select
.AutoWidthCol l
Next l
.FillFromRS rs