My experience of GPS is that it takes considerable time to give a stable airspeed reading once you have a constant speed and height. By this I mean 20-30 seconds very often and I've never seen it give meaningful data during a deceleration to stall.
If doing an ASI calibration using GPS, I'd normally fly into wind and downwind (into wind being defined at altitude as that heading which gives the lowest GPS groundspeed) at a range of IAS values. I'd then take mean of each pair of groundspeeds to give TAS, adjust for density altitude to give CAS, then plot an IAS .v. CAS graph. I'd then take limited extrapolation of the curve down to my IAS stalling speed.
I agree that when checked you are only looking at a couple of percent error between GPS and TAS due to a 500 fpm descent rate.
Ultimately, my money is on an unstable GPS groundspeed reading due to a changing velocity vector. I suggest checking that by trimming the aircraft to a few knots above the stall into wind, confirming 5+ satellites and waiting for GS to stabilise over 30 seconds+. Then do the same downwind and see what you get.
But I'm often wrong !
G