Is teh timer routine you refer to an interupt? I just wondered as receiving an ethnet packet presumably uses an interupt, and therefore are you trying to interupt during an interupt which doesn't work and just loses everything?
Only a suggestion/guess as I have seen references to not using serial print commands in interupt routines.
Paul