I tried to disable that with 'ShowGPS false' but it still shows.
Yes, putting this in the init fields of units does not seem to work. It looks like
showGPS has to be set after the mission starts.
There are many ways to run code after a mission starts.
You could create a trigger that fires reliably on every mission start (like a really big one that's being activated once by anybody) and put "showGPS false" in its "On Act." field.
Another way would be to add something like this to your init.sqf:
// create a small script that runs in the background
// where it waits until the mission starts
// and then disables the GPS for us
0 spawn {
waitUntil { time > 0 };
showGPS false;
};