/who isn't channel-specific. mIRC looks at your open channels and labels them based on the order you joined them. The /who (most likely) lists the channels a user is in based on the order they joined the channels. Obviously, these won't always be the same thing. So when you use /who, the $2 is probably the first channel the user joined, which isn't necessarily your $chan(1).
As a disclaimer, I don't really know the answer. This is all speculation, but I wouldn't be surprised if I was correct.