Både BigInteger och BigDecimal utökar java.lang.Number, men detta betyder inte att du kan casta från BigInteger upp till Number och sedan ner till BigDecimal.
Det finns en konstruktor i BigDecimal som tar ett BigInteger, så försök:
BigDecimal d = new BigDecimal(b);