Вы передаёте указатель на область памяти в адресном пространстве вашей программы, а у Notepad++ своё, изолированное адресное пространство. И по адресу, указанному в сообщении, естественно, будет мусор.
Для того, чтобы передавать буфер из приложения в приложение, в WinAPI предусмотрено сообщение
WM_COPYDATA. И в этом случае, Windows "под капотом" заботится о том, чтобы перенести передаваемый буфер в адресное пространство приложения адресата, чтобы оно могло его считать.
Но Scintilla не ожидает, что ей будут управлять извне, поэтому напрямую не получится послать ей такое сообщение. Можно попробовать внедрить свою dll в адресное пространство Notepad++ и добавить там обработчик сообщений WM_COPYDATA с пересылкой в Scintilla уже изнутри.
Поскольку Notepad++ поддерживает плагины, то с внедрением dll проблем быть не должно. В демке для Delphi плагина даже есть пример, как управлять Scintilla:
procedure THelloWorldPlugin.FuncHelloWorld;
var
s: string;
begin
s := 'Hello World';
SendMessage(self.NppData.ScintillaMainHandle, SCI_REPLACESEL, 0, LPARAM(PChar(s)));
end;