Can't downgrade or update jailbroken iPhone I can't update or downgrade my iPhone 3GS, Firmware 4.3.5 tethered with redsn0w. 

Whenever I try to update it, I get a "device isn't eligible" error. I researched on how to do that, like changing host files, but none of them worked for me. I use OS X Snow Leopard.

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost
74.208.10.249 gs.apple.com


This is my host file – not sure if it's the orginal one or not.
The host file is not the original. That 

74.208.10.249 gs.apple.com


resolves gs.apple.com to 74.208.10.249 (nginx.saurik.com) and not the real server by Apple, so that the SHSH trick works. Probably you have added it at some point. If you remove that you should be able to upgrade to iOS 5.1 using Apple's update. However, depending on the bootrom that you phone has, you may or may not be able to do a untethered jailbreak with Redsn0w, so be very careful before deciding whether you want to upgrade (although you say you have tethered jailbreak so probably you can live with tethered).

As for downgrading, I am not sure why you can't do this, chances are that you don't have SHSH for lower versions in Cydia.

Edit: for downgrading you may have to use another IP address in the hosts file. I've seen 74.208.105.171 used recently (check the recent tutorials for saving SHSH blobs, the IP address may have changed)