Problem with Freeduino Mega, ethernet shiled, tft ST7735 and SPI

The w5100 slave select is digital pin 10 on any Arduino.
Change your setup to disable all the SPI interfaces first.

void setup() {
  
    // disable w5100 SPI
    pinMode (ss, OUTPUT);
    digitalWrite(ss,HIGH);

    // disable TFT SPI
    pinMode (ss1, OUTPUT);
    digitalWrite(ss1,HIGH);

    // disable SD SPI if using an SD card
    // pinMode (4, OUTPUT);
    // digitalWrite(4,HIGH);
    
    Serial.begin(9600);
    // join I2C bus (I2Cdev library doesn't do this automatically)
    Wire.begin();
    // start the SPI library:

    while (Ethernet.begin(mac) != 1)
    {
      Serial.println("Error getting IP address via DHCP, trying again...");
      delay(15000);
    }
    // the Ethernet.begin() function leaves pin 10 LOW (SPI enabled), so back to HIGH
    digitalWrite(ss,HIGH);

    // rest of your setup stuff

Does that do any better?