You might need to give more info, as I'm not able to replicate what you're seeing. By "message" this means a query window? Which mirc version?, version of windows? Which font are you using?

Your message in forum appears to me having the ampersand-thru-semicolon format, so I paste that string into google search and the result page shows the emoji symbol. I then copy it from the google page into the clipboard, then do in status window: //echo -a $cb
From the resulting message displayed, I then paste it into this command to see what's in the clipboard:

//bset -t &v 1 contents-of-clipboard-replaces-this | echo -a $regsubex($bvar(&v,1-),/(\d+)/g,$base(\1,10,16,2))

... and I get the hex values of the utf-8 encoded string in the clipboard:

F0 9F 8D 86 64 34 33 39 63 33 38 65 2D 32 31 39 65 2D 35 32 64 30 2D 62 30 34 65 2D 38 38 32 32 63 61 31 39 65 37 32 65 F0 9F 8D 86

The first 4 and last 4 are the correct utf-8 encoding of your 127814 character, and are nothing similar to the encoding of 126976.

The only font I have which displays the emoji symbol is "Segoe UI Symbol", but the results from copypaste from window to the bset command are the same for Consolas or other fonts which just show the generic 'unknown' symbol.

Do you continue seeing the corrupted emoji when it's *not* the last character of the line? Does this problem still happen when you paste what you echoed to a window? With the following code you can see the bytes as filled into the text before the clipboard gets involved. Try changing 'person' into the friend's nick, then see if the emoji is corrupted before it reaches the clipboard.

Code:
On *:TEXT:*:*: { 
  if ($nick == person) {
    bset -t &v 1 $1-
    echo -s DEBUG as txt: $1-
    echo -s DEBUG as hex: $regsubex($bvar(&v,1-),/(\d+)/g,$base(\1,10,16,2))
  }
}