As I said, when they are away an not an op, the only way for mirc to know they should be given op status is if their nick or address is in a list of people who get op status when they come back from being away. (raw 822)

if ($nick isop $1) will only work on raw 821.


On a sidenote:
I dont know about the servers you connect to, but on the ones I do there is no $chan in raw events. Typically $1 is $chan but you can use echo to figure out what you need to do to get the channel name.