(also noticed in other things for example putting brackets around $time like [$time] or ($time) anything, it messes that up too)
This is because mIRC uses those same characters in the scripting language
try using the $chr(number of the character) $+ $time $+ $chr(number of the character)
fx:
$chr(91) $+ $time $+ $chr(93)
or
$+($chr(91), $time,$chr(93))
either way works in 6.16

Code:
alias chart {
  window -ado @ascii 6 93 386 245 
  var %i = 33
  while (%i <= 255) {
    if (%i <= 254) { 
      var %ii = %i + 1 
      var %iii = %i + 2
    }
    var %a = $right(00 $+ %i,4)
    if (%i <= 254) {
      var %aa = $right(00 $+ %ii,4)
      var %aaa = $right(00 $+ %iii,4)
    }
    if (%i <= 254) {
      aline @ascii $chr(36) $+ chr $+ $chr(40) $+ %a $+ $chr(41) = $chr(%a) $chr(36) $+ chr $+ $chr(40) $+ %aa $+ $chr(41) = $chr(%aa) $chr(36) $+ chr $+ $chr(40) $+ %aaa $+ $chr(41) = $chr(%aaa)
    }
    if (%i == 255) {
      aline @ascii $chr(36) $+ chr $+ $chr(40) $+ %a $+ $chr(41) = $chr(%a) 
    }
    var %i = %i + 3
  }
}