Похоже, что byte[]конструктор рассматривает входные данные как обычные данные дополнения 2, тогда как конструктор hex рассматривает его как нудную шестнадцатеричную строку.
Используя это, new BigInteger(int signum, byte[] magnitude)вы можете заставить значение быть положительным, так new BigInteger(1, b)будет 38068.