Depending on the size of the file, there are two ways you can do this:
1) If it is relatively small (less than 2GB and the smaller the better) you can read the whole file in, split it into the bit before the part to replace and the part after, then bolt them back together with the new data and write it back:
byte[] orig = File.ReadAllBytes(@"D:\Temp\Myfile.bin");
int lengthOfStart = 100;
int lengthOfUnwanted = 10;
byte[] start = new byte[lengthOfStart];
byte[] end = new byte[orig.Length - (lengthOfStart + lengthOfUnwanted)];
Array.Copy(orig, start, lengthOfStart);
Array.Copy(orig, lengthOfStart + lengthOfUnwanted, end, 0, end.Length);
byte[] newData = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 };
byte[] outp = new byte[start.Length + newData.Length + end.Length];
Array.Copy(start, outp, start.Length);
Array.Copy(newData, 0, outp, start.Length, newData.Length);
Array.Copy(end, 0, outp, start.Length + newData.Length, end.Length);
File.WriteAllBytes(@"D:\Temp\newFile.bin", outp);
2) If it is large, then read it in chunks, writing each chunk to a new file as you go until you get to the bit to replace. Read the chunk to replace and discard it. Write the new data. Read the remainder of the file in chunks, and write them to the new file as you go.