@vette - in theory, sure you can do that. In fact there are already multiple programs that simulate the IB datafeed for various reasons; playback of data for example. You would just set TWS to use some port other than the default one for the API, then have your custom app connect to that, and re-broadcast the corrected datafeed on the default port.
The accuracy of that volume data with your suggested scheme would be questionable. IB datafeed does not provide every tick, so even when the volume is updated correctly, each change may represent more than one trade. That inaccuracy is spread over all updates though, and thus does not impact anything in the big scheme of things. With "fixed" volume data, you would either:
a) build it purely from Last Size
or
b) update with every last size from last received Volume, and then update again when next volume update comes in.
with option A, the volume will be too low, and you will get large spikes anytime QT backfills, because backfill data does use correct volume, rendering volume charts useless
with option B, backfill will work, but you will get volume spikes anytime the regular volume update comes in (every 15 to 20 sec?), since all the missed trades will be accumulated in that one update instead of being spread across all updates. This would also screws volume charts
As for me doing it, sorry but don't really feel like devoting that much time to a project like that. It would be significantly more time than just me answering a few questions here
Jerry