Almost a year ago I turned tax rates into configuration entities. However, I never finished modifying Ubercart to actually USE those configuration entities - they exist, you can create them, save them, delete them, clone them, edit them, but they are not used to apply taxes. They exist in parallel with the old way of storing tax rates in the database. All the tests use the database taxes, not the entity taxes, and all the uc_tax functions in uc_tax.module still use the old database taxes.
I've had time to revisit this and attack the problem again now that Drupal has a stable version of D8. Configuration entities are not sufficient for what we need to do, so I've upgraded them to use tax rate plugins. A default plugin which calculates a tax rate as a fixed percentage (replicating our old tax system) is included. Using plugins allows us to integrate with web services as well as make complicated tax calculations that can't be represented by a fixed percentage.
A patch with these changes is attached. They still aren't used to actually calculate taxes, but it's a lot of code and I need to do this in stages.
The next step needs to be actually changing uc_tax.module this time, so that it uses these configuration entities.
The last step will be to remove all the old database code.