Zarówno BigInteger, jak i BigDecimal rozszerzają java.lang.Number, jednak nie oznacza to, że możesz rzutować z BigInteger w górę do Number, a następnie w dół do BigDecimal.
W BigDecimal istnieje konstruktor, który przyjmuje BigInteger, więc spróbuj:
BigDecimal d = new BigDecimal(b);