Наконец-то нашел проблему.
Файл XSLT загружался с завершающим нулевым байтом в конце файла. Пришлось использовать Hex Viewer, чтобы увидеть это.
Чтобы исправить это, я скопировал массив в другой массив, за исключением последнего символа, и теперь все хорошо.
Dim Temp() As Byte = New Byte(ArrayLength-1) {}
For i As Integer = 0 To ArrayLength-1
Temp(i)=Contents(i)
Next
rs.CreateResource(XSLTFileName, ReportFolder, True, Temp, "application/xml", Nothing)