In case you're using the same stream for deserialization and serialization, make sure to set your stream back to position 0.
public static DataSet Deserialize(Stream stream)
{
BinaryFormatter serializer = new BinaryFormatter();
stream.Position=0;
return (DataSet)serializer.Deserialize(stream);
}