Strava uses the training impact factor for each workout to calculate a fatigue factor. The impact factor is basically a weighted sum of the heart strokes. I do not know exactly but I guess it uses a factor of the max HR to estimate the impact at any moment during the workout and sums this. So on a long run you can gather a lot of heart strokes compared to a hard interval workout where the average heart rate is not verymuch higher than the longer easy runs, but the workouts might be shorter.
The more training impact the higher fatigue factor. Fitness is a factor that moves up in case the fatigue is higher than the current fitness and down in case the fatigue is lower than the current fitness. That means that in the start when the fitness was low and the fatigue estimate was high above it, the fitness moved fast up. Then when the fitness came up to the levels your fatigue factor on average was, it flattened out. Strava fitness does not show your fitness in the sense of your race ability, they are just numbers based on HR.
VO2max estimates of Garmin uses a simple relationship between pace and heart rate vs your max HR. So if the HR is getting lower on the same pace or the pace increases on the same HR the VO2max estimate will increase.
If you train by HR it is natural to increase the pace without thinking about it to keep the HR in the zone. If you train by pace, the pace needs to be adjusted along the improvement of the race pace or else your easy runs will get easier and easier and Strava is right that your training impact factor goes down on those workouts and then they count less and makes the fatigue lower (which is right) and when the fatigue is lower than the fitness level, the fitness level will decrease.
I would check the paces of all your easy running to possibly adjust the easy pace to reflect your racing paces (like 5k/10k/HM paces)
Strava fitness algorithm is no magic or complex thing, it is using quite straight forward mathematics based on your HR through the workouts. This is well tested so I don't see anything needing to be fixed. If fixing, see to that your max HR is input correctly and that you use a HR monitor that is accurate. Or else all will be crap