Ethernet Shield Not Being Consistent

You may be running out of SRAM. Try using the F() function to keep most of your static strings in program memory. For examples:

    Serial.print(F("The server is at: "));
    // and 
    Serial.println(F("GET caught, skipping request and printing HTML"));

This should free up some memory. Staying away from the String data types can also help.