Strange behaviour setting pinMode by array

i can't see anything wrong with the code and tested it myself

you might consider a simpler program to make sure things work as expected

#undef MyHW
#ifdef MyHW
byte PINS[] = { 10, 11, 12, 13 };
#else
byte PINS[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
#endif

#define N_PINS   sizeof(PINS)

void setup () {
    Serial.begin (9600);

    for (unsigned i = 0; i < N_PINS; i++)
        pinMode (PINS[i], OUTPUT);
}

void loop () {
    for (unsigned i = 0; i < N_PINS; i++) {
        digitalWrite (PINS [i], ! digitalRead (PINS [i]));
        delay (250);
    }
}