Почему решение через long не проходит? "abcdefabcdef" умещается в Long
public static Number convertNumberToOtherNumberSystem(Number number, NumberSystem expectedNumberSystem) {
    long parsedNumber = Long.parseLong(number.getDigit(), number.getNumberSystem().getNumberSystemIntValue());
    return convertTo(parsedNumber, expectedNumberSystem);
}

private static Number convertTo(long number, NumberSystem type) {
    StringBuilder result = new StringBuilder();
    while (number > 0) {
        long lng = number % type.getNumberSystemIntValue();
        if (lng > 9) {
            result.append((char) (lng - 10 + 'a'));
        } else {
            result.append(lng);
        }
        number = number / type.getNumberSystemIntValue();
    }
    return new Number(type, result.reverse().toString());
}