Både BigInteger og BigDecimal udvider java.lang.Number, men det betyder ikke, at du kan caste fra BigInteger op til Number og derefter ned til BigDecimal.
Der er en konstruktør i BigDecimal, der tager et BigInteger, så prøv:
BigDecimal d = new BigDecimal(b);