The values of P and Q do not match value of the Modulus of the .Net RSAParameters. According to RSA algorithm and MSDN documentation it should be: P * Q = Modulus
I
BigInteger parses arrays as signed little-endian values. RSAParameters uses unsigned big-endian.
BigInteger
RSAParameters
So i = new BigInteger(bytes.Reverse().Concat(new byte[]{0}).ToArray())) should work.
i = new BigInteger(bytes.Reverse().Concat(new byte[]{0}).ToArray()))