As mentioned above it's not entirely clear what you mean by colors "set in $me" however if you're referring to a Nick Colors rule for $me then the updated script below should work. I've also fixed a bug in the script so that it properly applies mIRC's coloring rules when it comes to own actions: the "own text" color overrides the "action text" color only when "own text" is not the same color as "normal text".

Note that when it comes to coloring your nickname it may not be 100% accurate as you can apply other match requirements to a color nick entry beyond simply the nickname and here we're not checking anything beyond whether an entry for $me exists and what its color is, however for the purposes of this script it should be good enough or if not you may edit the owncolor alias to be more stringent.

Code
; mIRC znc.in/self-message CAP support script by Mouse
; https://forums.mirc.com/ubbthreads.php/topics/252752
; v0.3 2021-06-02

; If server offers znc.in/self-message capability then request it.
raw CAP:*LS*znc.in/self-message*:{ .raw CAP REQ :znc.in/self-message }

; Local alias to get correct "own" action and nick colors
alias -l owncolor {
  if ($1 == action) {
    if ($color(own text) == $color(normal text)) { return $color(action text) }
    else { return $color(own text) }
  }
  if ($1 == nick && $cnick($me) > 0) {
    return $cnick($me).color
  }
}

; Process all private messages delivered to $me for which $me is not the target/recipient AND
; when no window for $me exists.
on ^*:OPEN:?:{
  if ($target != $me) {
    ; Make sure we have a query window to print to.
    if (!$window($target)) { query $target }
    ; Print message with proper formatting after checking if it's an ACTION.
    if ($gettok($rawmsg,4,32) == : $+ $chr(1) $+ ACTION) {
      echo $owncolor(action) -bfmt $+ $msgstamp $target * $nick $1-
    }
    else { echo $color(own text) -bfmt $+ $msgstamp $target < $+ $chr(3) $+ $owncolor(nick) $+ $nick $+ $chr(3) $+ > $1- }
    ; Halt further processing.
    halt
  }
}

; Process all private messages delivered to $me for which $me is not the target/recipient AND
; when a window for $me exists.
on ^*:TEXT:*:?:{
  echo -a result $owncolor(action)
  if ($target != $me) {
    ; Make sure we have a query window to print to.
    if (!$window($target)) { query $target }
    ; Print message with proper formatting after checking if it's an ACTION.
    if ($gettok($rawmsg,4,32) == : $+ $chr(1) $+ ACTION) {
      echo $owncolor(action) -bfmt $+ $msgstamp $target * $nick $1-
    }
    else { echo $color(own text) -bfmt $+ $msgstamp $target < $+ $chr(3) $+ $owncolor(nick) $+ $nick $+ $chr(3) $+ > $1- }
    ; Halt further processing.
    halt
  }
}


Tested on mIRC 7.65 and ZNC 1.8.2