The issue is that some GPS chip-sets provide altitude above the WGS84 earth ellipsoid, while most chip-sets give the altitude above sea level.
Some Android devices apply an adjustment to convert from the ellipsoid to sea level. However, it appears to be a common problem for Android devices to use a GPS chip-set that already gives altitude above sea level, and the device also incorrectly applies the adjustment. The value displayed by Memory-Map is the value provided by the Android location service, which the documentation says is supposed to be altitude above sea level. If the device manufacturer did not get the adjustments set up correctly for the chip-set they are using, the value displayed may be wrong.
The way to get around this is to go to the Menu, Settings, GPS Settings, Data Connection. Instead of Location Service, choose Built-in GPS. (You will need to activate a Professional License evaluation). If the Altitude displayed in the app is now correct, it means the chip-set is giving the correct value, and the adjustment made by the device manufacturer is incorrect.
Another point to note is that the GPS satellite fix is intrinsically less accurate in the vertical direction than in the horizontal plane. You should not expect the GPS altitude to exactly match the heights on your topo map. Vertical accuracy is typically +/- 10m.