By converting a
varbinary
column to a string, and then converting the string back to a series of bytes, you will end up corrupting the data.
Try reading the bytes directly:
byte[] serializedData = (byte[])dt_load.Rows[0][1];
using (MemoryStream departmanStream = new MemoryStream(serializedData))
{
List<departman> dep = (List<departman>)formatter.Deserialize(departmanStream);
grddepartman.DataSource = dep;
}