Просто небольшой вклад в этот ответ. Лучше проверить количество байтов, прочитанных в каждом блоке, чтобы записанный поток был точной копией потока, считанного из SharePoint.
См. Исправление ниже.
int size = 10 * 1024;
using (Stream stream = file.OpenBinaryStream())
{
using (FileStream fs = new FileStream(@"C:\Users\krg\Desktop\xyz.pptx", FileMode.Create, FileAccess.Write))
{
byte[] buffer = new byte[size];
int nbBytesRead =0;
while((nbBytesRead=stream.Read(buffer, 0, buffer.Length)) > 0)
{
fs.Write(buffer, 0, nBytesRead);
}
}
}