UCUM repairs to fix errors, mainly changing the order of operations to ensure ProductUnits are returned where needed as some calculations were returning TransformedUnits (multiply/divide on raw numbers) which were breaking in the ProductUnit constructor.
ATOMIC_MASS_UNIT still might be a problem, I fixed this by creating it as an instance of  SI.UNIFIED_ATOMIC_MASS as that is what it's defined as, I believe, creating it as an AlternateUnit is not possible due to UAM not being a proper SI unit.
REM is also a potential issue, I could not create it as an alternate of RAD as they have different quantities.
BARN also needs checking as I can't tell whether the way it is now structured still returns the right result.