En la dll veo que declaras las funciones con la directiva stdcall, entonces porque cuando las importas no utilizas la misma directiva
Código Delphi
[-]
function MostrarFormulario : boolean; stdcall; external 'FormDLL.dll' name 'MostrarFormulario';
function suma(x,y:integer): integer; stdcall; external 'FormDLL.dll' name 'suma';
function muestrasaludo:boolean; stdcall; external 'FormDLL.dll' name 'muestrasaludo';
Te preguntaras por que solo la suma parecía funcionar mal, pues es debido a que la directiva stdcall solo indica como se deben de pasar los parámetros a la función, así que como suma es la única de las funciones con parámetros es la única que parecía funcionar mal.