There have been problems that somehow the PID file for an OpenVPN instance can get updated with a new PID but the new process dies because the old process is still there, or some similar timing interaction. In that case the dashboard code is trying to query the OpenVPN status of a PID that does not exist - so it shows down. But actually the OpenVPN instance is happily running with some other PID and users are happy.
As you report, if you kill all the processes then start them 1-by-1 it all goes green. That is because the PIDs in the PID files now match the PIDs of the running processes.
Actually you will probably find that from a user point of view all OpenVPN instances were working fine.
If someone can pin down the sequence of events that causes this, then it can be fixed some day :)