Doug,
Sorry to dissapoint you, but any overwriting based on events (or any single-hit action by user) won't work correctly and would lead to skewing your data anyway. See this brilliant post by Joshua.
What you could do however is to use CustomVar or CustomDimension (on session level probably), which would substitute UTM parameters. So if there is a promo on your werbsite, you can assign some value after users click on it.
Then by building a custom report, you should be able to use this with no restrictions, just instead of medium/source pick your customvar/customdim.
Hope this helps.