I'm trying to figure out what is the most reliable method for recording a hike (distance, elevation, time)? 

I used a Garmin Oregon 450 for most of my hiking years but the button wore out and the technology is "outdated" by this point I assume.  I bought an Oregon 650t a couple years ago but discovered it was not consistent in recording accuracy and even had a bug in the software.  Now many people are using Apps on their phones so I've started trying that by using two of them simultaneously on my iPhone.  Also, I bought the Oregon 750t recently. 

Here are my comparisons from three recent hikes (A, B, C).  The Garmin is set to 7 seconds so it would stand that it won't be as accurate but setting it to anything lower creates huge files and drains the battery quickly. 

AllTrails
A = 6.45 w/ 1190’ gain (3h32m moving; 4h05m total)
B= 4.25 w/ 550’ gain (2h58m moving; 3h55m total)
C = 4.15 w/ 770’ gain (2h43m moving; 3h43m total)

Strava
A = 6.55 w/ 1400’ gain (1h52m moving; 4h05m total)
B = 4.35 w/ 1170’ gain (1h05m moving; 3h58m total)
C = 4.9 w/ 990’ gain (1h40m moving; 3h43m total)

Garmin 750t 
A = 6.4 w/ 1400’ gain (3h05m moving; 4h09m total)
B = 4.1 w/ 1000’ gain (2h12m moving; 3h57m total)
C = 4.2 w/ 1290’ gain (2h18m moving; 3h46m total)

The Strava is way off in terms of moving time. But AllTrails seems to be off quite a bit in elevation. But Garmin still has buggy software where my "B" Track has 1588 points but if I include all of them it reports (4.3 miles w/ 1275' gain; total time 6 days 4 hours 53 minutes) but if I delete the first or last point to make it 1587 points, it reports the numbers seen in the chart above. 

Any help on which is the most accurate or why they seem to vary but not consistently from hike to hike?