GetProcessMemoryInfo also writes memory that is not managed by FastMM, such as memory that is allocated by various non-Delphi DLLs that you might call (e.g. winapi).
FastMM can also allocate more memory from Windows, which your application actually uses for internal structures, fragmentation, and integration.
And as the last time, using GetProcessMemoryInfo you measure the size of a Workingset. This is that part of the application memory is currenctly in RAM, not in the page file. It includes more than just data structures and is definitely not comparable to the shared memory allocated by the application. PagefileUsage will be more comparable. The size of the working set is almost never what you are looking for. See here for more details.
Thus, they give different results, because both of them measure different things.
source share