It turns out it was something of a product of my testing environment and some errors in my composer setup. In case it is of use I will explain.
My testing server has 5-6 full Drupal sites running on it so I can test/break and frequently pull new copies of live sites in.
The issue arose due to a legacy Drush Launcher workaround. After updating a couple of the sites to d10 Drush launcher no longer worked on the D10 sites and as a temporary workaround suggested on their git repo I added "./vendor/bin" to the start of my path and secure path so I could call Drush without the path.
It seems that when trying to call composer during the d10 update my system was getting confused about which version of composer to use - I also had one installed to vendor. It wasn't an issue once the site was updated as composer was also getting updated, only during. At least I think that was what was happening.
Removing the "./vendor/bin" from my path fixed it immediately.
This wouldn't have been an issue on a live site as I don't have that kind of setup or have d10 and d9 sites running site by side. But it was very confusing at for a while.
Ok this is odd.
I have 2.6.5 composer installed globally. But within that specific site it is report 2.2.22 and refusing to self-update:
Command "self-update" is not defined.
The site is on a test server with 4-5 other sites on it - some of which are already running d10 happily with the latest composer.
I am even more confused now.
Removing Drupal Console fixed all the errors. Thanks,
No idea why it was also reporting twig issues.
Running Drupal 9.5.10