There always seems to be a difference between Strava and AP. Sometimes it is a little (5%) and sometimes alot (25%). I am guessing it is how the algorithm treats the data and its internal settings. The computer doesn't take every data point and calculate the elev gain between them because this could take quite a long time. Rather it takes sample, say a point every 10-60 seconds at random depending on activity length, and then calculates. If you were to input the data into AP or Strava you will get a different elev gain every time due to the random sampling. The longer and/or hilly the activity the less accurate the elev gain will be and the disparity between Strava and AP will increase. I can't speak for map my run because I don't know how they calculate, but I would trust the GPS data. If you want to experiment, load the GPS data into Strava and AP 10 times each and average the result. The deviation should reduce to a more accurate number.
Ha, or just go with the higher number.