When sending a transaction, we were converting to BN before handling decimals, which meant we were losing any precision past a decimal point, since BN does not handle decimals!
Put this numeric normalization into a utility function with a test around it and got it working.
utils.formatBalance was returning rounded ether, was not useful for displaying account balances.
Now returns four decimal points, and is easily configurable for more, with passing tests.
Spoiler alert: Don't you dare divide bignumber wei. Bignumber does not have decimals. Keep it as wei, format it as ether.