Hi Ian,
The XML you posted shows that both relative substitution rate and clock rate are estimated. The total rate on a branch is the product of these two (for strict clock), so a clock rate can be increased for one partition and as long as the relative substitution rate decreases proportionally another set of substitution rates and clock rates can be found resulting in the same branch rates. In other words, substitution and clock rates when estimated for each partition individually are unidentifiable, resulting in the low ESSs you observed.
To get better ESSs and have individual rates for each of your partitions fix all substitution rates to 1, and do not estimate them (uncheck the estimate box in BEAUti next to substitution rate in the site model panel).
Cheers,
Remco