Hi PM,
The flight altitude will control your GSD. If you fly higher, the GSD (=distance between pixels on the ground) will be larger, hence you get lower resolution spatial datasets during photogrammetric processing. Hence, your flight height will depend on what kind of details you want to resolve in your final datasets.
Regarding overlap. Depending on the scene complexity you should use 65 to 85% side-overlap and 75% to 90% forward overlap.
If you only survey your GCPs with a standard GPS (e.g., a handheld Garmin), you won't get much of an improvement compared to using geotagged camera locations only because the accuracy of a handheld Garmin GPS is generally in the same ballpark as the GPS used in a small UAV (e.g., DJI Phantom 4 or Inspire 1 or 2). You will need to use an RTK/PPK GPS or total station for your ground control points to achieve a higher accuracy. Alternatively, if your UAV supports RTK/PPK GPS, you won't need any GCPs at all (as many case studies/white papers have shown) to achieve cm accuracy.
Regarding GCPs. Agisoft recommends 10-15 GCPS. Some of them should be used as check points instead of control points to get a reliable error estimate. Also try to evenly distribute all GCPs in your survey area.
Also check the image quality. Choose DETAIL VIEW in the photo pane, then right click on a picture and choose ESTIMATE IMAGE QUALITY>ALL IMAGES. Delete or disable all images that show an image quality value that is below 0.5. For high quality models you want to have this value above 0.7 for all images.
To sum it up. Double check your image quality, use more ground control points, measure them with higher accuracy and last but not least use a higher image overlap.
All the best for your work.
Regards
SAV