I'm trying to open the project memo window from a dashboard but it doesn't work

You might have to look at:

Which shows that Epicor has a this.LaunchMemoEditor method. in MemoHelper class. You might have to use that or do some research how Epicor invokes it.

Actually if you just Reflect on the UI Application for Project Entry you should find:

public class ProjectEntryMemoHelper : MemoHelper

this.LaunchMemoEditor(transaction.projectID, "Project");

If I recall from my E9 days The MemoHelper Delegate in a Nutshell does something like this:
Look at some of those Assemblies, not sure what their names are in E10

Assembly memoAdapterAssembly = ClientAssemblyRetriever
    .ForILaunch(this.Transaction)
    .RetrieveAssembly("Epicor.Mfg.AD.Memo.dll");
Type memoArgsType = memoAdapterAssembly.GetType("Epicor.Mfg.UI.App.MemoEntry.MemoArgs");
MethodInfo startNonModalMethod = memoArgsType.GetMethod(
    "StartNonModal",
    BindingFlags.Public | BindingFlags.Static,
    null,
    new Type[] { typeof(Form), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(ProcessCallerCallBack) },
    null);
MemoHelper.memoLauncher = (MemoLauncherDelegate)Delegate.CreateDelegate(
    typeof(MemoLauncherDelegate), startNonModalMethod);