Diagram looks like a mesh. It will continue to evolve as routes fail. This process is ongoing.
I would continue to look at the zwavejs logs and look at the zwave diagnostics sensors for the devices (you may need to enable these entities) to find devices that are transmitting a lot and then try to reduce what they are transmitting,
Here’s a screenshot of a zwave device. Those comm stats are what you want to look at.
I have them all in a table so it’s easy to look at. In my system you can see the tv_power strip is sending the most traffic. What you want to do is look at this data (it gets reset whenever you restart zwavejs) and find the nosiest devices and also verify the data makes sense. For example, if a motion sensor is transmitting 1000x a day and it’s in the attic - thats not what you would expect. Also look at the timeouts - really this should be close to zero. I have a few with timeouts and these occurred around a power outage. Timeouts are more common after a heal before the netowrk reallt settles down. Again, if you have devices with alot of timeouts, those indicate a problem.
To setup a static route simply click on a node in the network graph to view the node properties. Then scroll to the bottom. The priority route is from the controller to a node and the return route is from a node to the controller.
Thank you everyone for helping! My network is soooo much better, I have barely any lag, I do want to post more log in case there is something else, but removing the devices as S0 was definitely causing the issues. Here I thought it was the new hub but it was only because I increased security where I could.