Simulate analogWrite(PIN, 0-255) with digitalWrite

I made a sketch in Tinkercad, you can import my file.

Considering this circuit,

it should be able to scan every led with this code:

byte led1r = 0b00000001;
byte led1g = 0b00000010;
byte led1b = 0b00000100;


//Led 1 RED
analogWrite(latchPin, 0);
shiftOut(dataPin, clockPin, MSBFIRST, led1r);
analogWrite(latchPin, 125);

analogWrite(latchPin, 0);
shiftOut(dataPin, clockPin, MSBFIRST, led1g);
analogWrite(latchPin, 255);

analogWrite(latchPin, 0);
shiftOut(dataPin, clockPin, MSBFIRST, led1b);
analogWrite(latchPin, 10);

Theoretically, the result is a led with (125, 255, 10) color. But in the simulation, the color is slightly different and the IC breaks because of the current.

In my noob theory I would proceed to scan every led for every row in that way, using other bits to select rows and keeping the first 3 to select R/G/B anodes.

Hope it explains better my problem.