Para evitar duplicar el código podrías ponerlo en una subrutina y luego llamarla desde los dos bucles. Por ejemplo, para los dos primeros:
Sub ProcesarLabels(ctrl as Control, ByRef Integer b)
If ctrl.GetType() Is GetType(Label) And ctrl.Name.StartsWith("LblActs") Then If ctrl.ForeColor = Color.Red Then b = 1
End Sub
...
For Each ctrl As Control In (PnlProgresoA.Controls)'Primer Panel
ProcesarLabels(ctrl, b1)
Next
For Each ctrl As Control In (PnlProgresoB.Controls)'Segundo Panel
ProcesarLabels(ctrl, b2)
Next
Y lo mismo harías con los otros dos bucles.
Otra alternativa que se me ocurre es construir una única colección con todos los controles de los dos paneles, y luego unificar los dos bucles para que recorran esa única colección.