All of the C# XML parsers will automatically handle the BOM for you. I'd recommend using XDocument - in my opinion it provides the cleanest abstraction of XML data.
Using XDocument as an example:
using (var stream = new memoryStream(bytes))
{
var document = XDocument.Load(stream);
...
}
Once you have an XDocument you can then use it to omit the bytes without the BOM:
using (var stream = new MemoryStream())
using (var writer = XmlWriter.Create(stream))
{
writer.Settings.Encoding = new UTF8Encoding(false);
document.WriteTo(writer);
var bytesWithoutBOM = stream.ToArray();
}