Try code like this. It works directly with the GridData object and avoids events. (I did this without syntax checking so I may have mistyped something).
Dim data As GridData = GridControl1.Data
''''.....
For month = 1 To 12
'''' get values from local DataTable,
'''' peform calculations,
'''' and return the result
Dim style as GridStyleInfo
If Not data(row, col) is Nothing Then
style = new GridStyleInfo(data(row, col))
else
style = new GridStyleInfo()
endif
style.CellValue = CalculateNewValue(DeptID, DeptItemID, month)
data(row, col) = style.Store
Next