Well let's see. Ifup only sets everything up again you have in the /etc/interfaces file. I'd also say some setting is going wrong. In my network I usually get the same IP both for my computer local and my router's IP so it could be ifconfig does not show that it's not working and simply display the old address.
I must admit I'm not really an expert on this thing so I'm guessing a bit too if you don't mind
Which program is trying to get the dhcp lease every hour or is it a script?