they’ll retain it as long as you don’t delete the emoji itself (if it’s custom, the default emoji can’t be deleted)
if you upload a custom emoji using the same name as a default emoji, the custom emoji will be used
the heart is a little trickier, because in this form under the post controls it’s not an emoji, but an icon
so if you wanted to replace that as well, you’d have to use this process: Replace Discourse's default SVG icons with custom icons in a theme
for completeness you’d have to replace various default icons: heart
, d-liked
, d-unliked
, notification.liked
, notification.liked_2
, notification.liked_many
, notification.liked_consolidated
we have a theme component that changes likes to thumbs up that can be referenced for this: Change the Like Icon to 👍