This is for a critical piece of infrastructure and needs to be resiliant.
You can call a network with a single redundant link "resilient". The network architecture needs to reflect the degree of resilience that is required. Most often, a maximum downtime period or a minimum availability per year is defined.
I'm very concerned about the design and the fact the supplier has purposely implemented a single VLAN onn a campus that is quite large (2/3 km2),
That design is bad. Building Ethernet rings such a large L2 segment/broadcast domain must be avoided.
and is fully dependent on RSTP for redundancy.
That isn't the problem. RSTP/MSTP can provide a good degree of redundancy with very fast failover when used correctly.
However, a large number of redundant links increase the chance that some link isn't configured correctly and causes a broadcast loop, bringing down the network.
Added to this is during site testing there was discrepencies in convergence
RSTP is designed for a maximum of seven bridges in depth. Exceeding that requires changing the Maximum age parameter, so the tree has a chance to converge.
While the diagram shows a physical radius of only six, uneven data rates might shift the blocking point so that the radius exceeds seven. As a rule of thumb, never decrease link speed towards the center of a network, only towards the edge.
and the supplier then started pointing to the fact there was slower copper 100Mbs connections between some switches
Inbuilt bottlenecks make everything worse. 100 Mbit/s doesn't hurt RSTP though, the diameter/distance does. However, mixing different speeds in a ring shifts the STP-blocked port towards the lower-speed link, so the STP maximum depth can be exceeded more easily.
and started changing port priorities and port costs.
Patchwork, possibly working around the uneven link speed problem.
However having revisited the design in more detail I have seen that they have also change timers from the defaults on devices that are not the root bridge.
Yes. You likely need to tune max age. However, you should seriously consider rebuilding the network (see below).
As the diagram shows, there are a total of 24 switches present on the same subnet and participating in the same RSTP.
The number isn't necessarily a problem, the depth is (maximum distance between any two switches).
Is this a good design?
Definitely not. Building rings with Ethernet is a bad idea in general.
The 100M links look entirely useless. With a single L2 and STP, they'd just get blocked, even if aggregated.
Can/Should RSTP timers be changed from defaults and if so should it be done on non-root bridges
Yes, on all bridges, see above. Before doing that, you'll need to calculate what really is required.
What is the Max diameter of this topology and what diameter is advisible to use?
Best case, it's 12 (6-5-4-3-1-23-2-13-14-15-16-17), worst case it's 19.
So, you should consider a few changes:
- split up the one large VLAN into several ones, routed at the core (the 1920s support L3 switching)
- connect each field switch individually to each of the core switches - if that isn't possible, at least arrange the switches in a hierarchy (=physical tree), with distribution layer redundancy
- as a cheaper version of 2., interconnect the field switches in pairs, each of them connected to one of the cores