your /etc/network/interfaces should only need*
iface wlan0 inet dhcp
Don't specify anything else in that section. Then run "ifup wlan0". If this doesn't work, try bringing the interface down first using "ifdown wlan0".
Finally if you are still having problems unloading and reloading the module that drives your wireless chip may help. You can find which module is being used with lspci. Eg:
lspci -k | grep -A 3 -i wireless
* Assuming the pub has a dhcp server (but I can't imagine otherwise).