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?