Наиболее вероятная проблема заключается в том, что используемый вами текстовый редактор испортил непечатаемые символы, испортил окончания строк или и то, и другое.
Непечатаемые символы: наборы символов ASCII (и Unicode) определяют сопоставления чисел (групп двоичных данных) с символами. (На самом деле существует множество наборов символов, но UTF-8 и UTF-16, вероятно, являются наиболее распространенными, и оба, в некоторой степени, основаны на ASCII; так же, как и большинство других.) Однако не все числа соответствуют "реальным" символам. Некоторые из них являются "управляющими" персонажами, предназначенными для использования на таких вещах, как действительно древние машины удаленного телетайпа. Некоторые странные вещи, например, символ "колокольчик" (который издает звуковой сигнал, если вы печатаете его на консоли). Также есть символ NULL (хранится как 0, все биты не установлены), который используется для обозначения конца строки (капли текста) во многих языках программирования; текстовые редакторы, вероятно, не будут обрабатывать их изящно, но они появятся в исполняемом файле.
Во всяком случае, текстовый редактор не будет знать, как их представить. Он может просто показывать их в виде квадратов или чего-то еще, но затем, когда вы копируете его, он может копировать символы в виде квадратов, а не в качестве их базовых кодов символов. Или когда вы вставляете это, это может сделать что-то подобное. Поскольку EXE-файлы состоят из машинного кода (двоичные данные, которые не предназначены для представления в виде текста), они будут содержать набор этих непечатаемых символов.
Окончания строк: есть два символа, которые (иногда) используются для окончания строк в большинстве наборов символов. Это возврат каретки (в старом телетайпе это означало "переместить печатающую головку назад к левому краю") и перевод строки (переход к следующей строке вниз на странице). Смотрите Википедию. Windows использует оба, как правило, парные; если строка не заканчивается в CRLF, некоторые редакторы сочтут, что строка вообще не заканчивается, и просто поместят невидимый символ (вы "запутаетесь" над ним, если будете использовать клавиши со стрелками для перемещения влево / правильно, ваш курсор будет казаться не двигаться). Другие редакторы будут обрабатывать только CRLF, LF или даже CR (хотя ничего, поскольку классический MacOS использовал это окончание строки) все как допустимые окончания строки.
Проблема возникает, когда вы копируете-вставляете что-то с несовместимым окончанием строки. Многие текстовые редакторы достаточно "умны", чтобы "исправить" окончания строк. В системе Windows это, вероятно, означает преобразование всех соло LF и, возможно, также соло CR, в комбинации CRLF. Это добавление новых данных в EXE, что, конечно, меняет значение машинного кода.
Как говорится в комментарии @ Ramhound, если вы хотите скопировать и вставить содержимое EXE-файла (или любого другого нетекстового двоичного файла), вам необходимо использовать бинарный редактор (большинство из них обычно называются шестнадцатеричными редакторами, поскольку байт в файле как шестнадцатеричное значение, от 00 до FF, хотя они также будут декодировать печатаемые в текст для вас). Бинарные редакторы не пропустят непечатаемые символы или попытаются "исправить" окончания строк или что-то еще в этом роде.