for(int i=0; i<24; i++) Tlc.set(pattern1[i], one[i]); //even channels
That is going to reference pattern1 through pattern1 which is OK. It will also reference one through one which is NOT OK.
delay(500); Tlc.update(); Tlc.clear();
Now, I’ve never used this library, but this order just looks wrong. I would expect to update the display, then pause for half a second, then clear the display.