Per Buster2007's response, the format returned by $address is incorrect for avoice (and I would therefore also imagine aop)

By making some slight modifications, the following code works
Code:
 on @*:text:!autoplay:#:{
  .avoice $iif($avoice($address($nick,3)),-r ) $nick $chan 3 $network
  describe # $iif($avoice($address($nick,3)),smiles as $nick decides to be,sighs as $nick decides to stop being) a permanent player
  if ($nick !isvoice $chan) && $avoice($address($nick,3)) {    .mode $chan +v $nick  }
  elseif ($nick isvoice $chan) && !$avoice($address($nick,3)) {    .mode $chan -v $nick  }
}