Damit hast du doch nicht jede LED einzeln angesteuert!
Das geht auch gar nicht, sonst müsstest du ja 35 Ausgänge benutzen.
Nur jetzt hast du 7 LEDs an einem Port Pin hängen. Das geht nicht. Schau dir mal im Datenblatt die maximalen Ströme in einen PIN an. Dann ist klar, dass die unterschiedlich hell leuchten, wenn in der Spalte nur eine oder alle sieben LEDs an sind.
Wie gesagt, ich würde einen Treiber mit 6 Ein-/Ausgängen davor schalten. Du hast jetzt 20% Duty Cycle, mit dem Treiber kannst du dann auch 40mA in jede LED lassen, sodass die Matrix eine vernünftige Helligkeit hat.
Und dann kann auch deinem µC nichts passieren.

Gruß

Rolf