It could very well be that either the agents or the machines the agents are running on have a problem. I can not say straight from the text above. Both these cases are different by the way.
flushing the case and restarting the agent is often used to try and get things moving again for an agent. Question is did the agents not pass performance metrics before or after that cache flush action?
Checking the scom event log on some agent machines can sometimes show something. for example connection failures to SCOM management server. and after the flush and restart they should give a few hundred entries saying download of management packs (1201). if no packs, no monitoring. if no connection also no monitoring.
And in some cases its a SCOM backend problem of course. All depends.