I haven't tested any of this, but I would mention a couple things. You are using tcp::client_port where I think that is going to be the source port. You would want to use tcp::local_port which is the destination port.
Also, you're doing when HTTP_Request when you should probably be using when CLIENT_ACCEPTED. This happens higher in the stack, so it should be more efficient.
Something like this:
when CLIENT_ACCEPTED {
if { [TCP::local_port] equals 531 } {
pool win2003
} elseif { [TCP::local_port] equals 25 } {
pool win2003
} else {
pool win2003
}}