I thought i would post an update to this.
it turned out to be bad power, the wiznet chip seems to be very picky about its power delivery. I was running my freetronics mega of the micro USB, as soon as i started to power it externally using a 12 volt power brick all my problems went away.
I also had to go through all my code to confirm i didn't have any buffer overruns and i definitely found a few that could cause some issues.
Thanks for all your help. The entire code base is around 6500 lines long, compiles to around 85k in size and at compile time uses 5091 bytes. Its an fairly complicated bit of code including a web browser, log browser, NTP client, temperature, ph, flow rate sensing, controlling relays, web based authentication, sending email, UDP communications, pinging gateways, and on the fly rebooting of the network interface without rebooting the entire unit, it has watchdog support, RTC support, browsable file interface to download and delete files, i have got it transferring fires at around 32kb a second too, as well as an on the fly serial logging system, and soon to be support is a verbose and terse logging to serial that also gets logged to SD card.
its a beast!