I just realized that you said that "G28 and G29 use different probe methods" but my question was pertaining to the difference I am seeing between G29 and M48.

To reiterate and to pick a particular measurement point: in my testing I ran a series of G29 and the z measured at x:190, y:190 varies (cut/paste just the last line of the G29 results):

Bed x: 190.00 y: 190.00 z: 3.86
Bed x: 190.00 y: 190.00 z: 4.04
Bed x: 190.00 y: 190.00 z: 3.82
Bed x: 190.00 y: 190.00 z: 4.09

So z is varying from 3.82 to 4.09

If I do M48 at that same position:

M48 Z-Probe Repeatability test. Version 2.00
Full support at: http://3dprintboard.com/forum.php
Positioning probe for the test.
1 of 10 z: 4.045954 mean: 4.045954 sigma: 0.000000
2 of 10 z: 4.039710 mean: 4.042832 sigma: 0.003122
3 of 10 z: 4.033466 mean: 4.039710 sigma: 0.005098
4 of 10 z: 4.033466 mean: 4.038149 sigma: 0.005177
5 of 10 z: 4.033466 mean: 4.037212 sigma: 0.004995
6 of 10 z: 4.039710 mean: 4.037629 sigma: 0.004654
7 of 10 z: 4.039710 mean: 4.037926 sigma: 0.004370
8 of 10 z: 4.033466 mean: 4.037369 sigma: 0.004345
9 of 10 z: 4.033466 mean: 4.036935 sigma: 0.004277
10 of 10 z: 4.039710 mean: 4.037213 sigma: 0.004142
Mean: 4.037213
Standard Deviation: 0.004142

Here z is varying considerably less. Running M48 after each G29 results in consistent values (i.e. the M48 is not varying by whatever is causing G29 to vary) Maybe I should look into rewriting G29 to use the probe test from M48