OK - after some more trial and error experimentation I managed to identify the two layers that were at the root of the problem. These actually showed settlement names (labels) with no symbols. However, they both had unique value rendering set, but no classes defined. I set these both to use a single symbol with no colour/outline and re-published - now the labels display as expected in the cache. It would be useful if the logs had reported what the problem was as it would've saved me a couple of hours work. Still it's working now.