Frame challenge: when aircraft are operating below the transition altitude (which in the USA is 18,000' MSL), ATC radar scopes will correct the reported pressure altitude and display the proper MSL figure (rounded to the nearest 100'). If you are only dealing with a small number of flights, you may be able to submit a FOIA request to the FAA and get the stored track data. I do not think this information is kept for a long time, perhaps only 45 days or so.
Some background: transponders always report altitude in flight levels, that is, they report their altitude assuming the local sea-level pressure is 29.92 inHg (1013 hPa). It is up to the receiving station to correct this altitude according to the true local atmospheric pressure and thereby determine the aircraft's MSL altitude. For more information, see Wikipedia: Flight level, PPRuNe: Converting Mode C flight levels to altitudes (and the linked Aviation Formulary site), and Av.SE: How does one calculate true altitude?.
The equation you need, from the Formulary, is:
- Find pressure height (altitude) $H_\text{P}$ (in feet) given indicated height (altitude) $H_\text{I}$ and the altimeter setting $A$ (in inches of mercury):
$$ H_\text{P} = H_\text{I} + 145442.2 \left(1- \left[ \frac{A}{29.92126} \right] ^ {0.190261} \right) $$
or reversed to be more relevant for your question, that is, find the indicated altitude given the pressure altitude:
$$ H_\text{I} = H_\text{P} - 145442.2 \left(1- \left[ \frac{A}{29.92126} \right] ^ {0.190261} \right) $$
Note that this will only get you the indicated MSL altitude; that altitude will still not be truly accurate due to other factors, mainly the fact that the rate of change in air pressure is also dependent on temperature. So there is another equation:
- Find true height (altitude) $H_\text{T}$ (in feet) of an aircraft, given indicated calibrated altitude $H_\text{C}$, field height (elevation) $H_\text{F}$ of the station providing the altimeter setting, average deviation $D$ (in Celsius) from standard temperature in the column of air between the aircraft and the reporting station, and air temperature $T$ outside the aircraft:
$$ H_\text{T} = H_\text{C} + D \left(\frac{ H_\text{C} - H_\text{F} }{ 273 + T } \right) $$
I am not sure what the relationship is between indicated altitude $H_\text{I}$ and calibrated altitude $H_\text{C}$, besides the fact that "calibrated" means the value has been adjusted for equipment discrepancies in the altimeter unit itself (as compared to discrepancies in meteorological conditions). It may be that we assume $H_\text{C} = H_\text{I}$. But in any case your data does not include $D$ or $T$ so the second equation is of little use, and you will have to be content with only knowing the indicated altitude.
To perform this correction after the fact, you will need to locate nearby altimeter settings that were current when the aircraft passed by for each data point in your set.
A google search for "archived METARs" resulted in this Av.SE answer which suggests OGIMET. You will have to search by station identifier rather than lat/long so the process will be quite arduous, I'm afraid. (See skyvector for some hints about which station to search for; the colored dots indicate reporting station locations.)
The piece of information you're looking for is the altimeter setting, which is the letter A
followed by four digits. In the US that number represents hundredths of inches of mercury, e.g. A2992
indicates a setting of 29.92 inHg.
As for conversion between MSL and WGS84 elevation, I have no suggestions beyond another google search which led to this GIS.SE question.