It's been quite some time since I wrote an update to this thread so here it is.
Unfortunately the Long Covid is still physically limiting my life greatly but, thankfully, I've not had the brain fog and my mental ability is ok but i'm still limited by my available energy and weird vision. So all the updates are still on the bench until I can physically install them.
I have expanded and now also have 3 Sofar ME3000SP's in the system so I needed think about how to control them. The Teensy only had 3 available CAN ports so I had to expand. The easiest way was to add another Teensy to link to the 3 Sofars. This had to be connected to the original Teensy so this is done over Serial interface.
The greatest problem with having so many inverters and chargers is potentially exceeding the Pylontech max charge current. The SMA inverter is great because it actually transmits its charging current over the CAN network, as do the Elteks. This is as measured by the inverter not the battery. The Sofars do also measure this current but they just enter 0x00 in the CAN message they transmit. I've tried to get Sofar to do a firmware update to populate the CAN message with the actual value but no joy. The Sofar does however transmit the value over RS485 so I've had to resort to using a Raspberry Pi and then transmitting the values over MQQT for the Teesny to receive. These values are then used to calculate exactly what charge current headroom is still available to each inverter.
The control system now has the following;
A reduced Charging voltage setting. (Also reverts to Pylontech rate once a week and resets on 100% SOC).
A balanced charge from the Elteks (from the grid) that matches demand from the batteries if they are low.
A manually set constant voltage charge, either 52.5v or 53v, to ensure full cell balances.
An automatic charge from the Elteks (from the grid at anytime) when the SOC is very low.
Eltek battery charging during low rate grid, controlled by the next days forecast (Solcast) The current is calculated so the whole set time period is used. It also automatically allows for if the DHW is being heated during the low rate period. (Also reverts to 100% SOC once a week and resets on 100% SOC).
All the above still has all the Pylontech battery protection so the battery is still in charge.

85no 58mm solar thermal tubes, 28.5Kw PV, 3x Sunny Island 5048, 135kWh Rolls batteries, 52kWh Growatt storage GBLI 6532, 66kWh Pylontech US3000C, 43kWh DIY, Sofar ME3000's, Brosley wood burner and 250lt DHW