Help with TFT LCD 3.6" OR 3.5"

Look at the structure of your sketch:

void loop(void)
{
    aspect = 3;                   //  To change aspect
    tft.setRotation(aspect);      //  To change aspect
   
    ...
    // draw picture
    ...
    while (1) {
        if (++ss > 59) {
            ...
        }
        ...    
        sprintf(buf, "%02d:%02d:%02d", hh, mm, ss);
        tft.fillRect(108, 10 * 18 + 3, 6 * 18, 18, BLACK);
        tft.setCursor(128, 187 + ADJ_BASELINE);
        tft.print(buf);
        delay(1000);
    }
}

So the loop()l will never end. It always displays in the aspect that you chose at the start of loop()

You could change the logic:

void loop(void)
{
    if (++aspect > 3) aspect = 0;  // go through all 4 aspects.
    tft.setRotation(aspect);      //  To change aspect
    tft.fillScreen(BLACK);          // clear screen   
    ...
    // draw picture
    ...
    while (1) {
        ...
        sprintf(buf, "%02d:%02d:%02d", hh, mm, ss);
        tft.fillRect(108, 10 * 18 + 3, 6 * 18, 18, BLACK);
        tft.setCursor(128, 187 + ADJ_BASELINE);
        tft.print(buf);
        delay(1000);
        if ((mm % 10) == 0) {   //break the while lop every 10 minutes.
            break;
        }
    }
}

Untested. Just experiment for yourself.
I find that a pencil and paper is a good way to draw flowcharts.

This example was designed for a 240x320 screen. You could calculate all the dimensions related to your screen size. It gets a little messy.

David.