Welcome to Wrox!
You wrote, "Then I have an unbound textbox (Revised cost) whose control source is unit cost." That is contradictory. If you have an unbound textbox, then it's unbound. You cannot have a control source as unit cost because that would make it a BOUND textbox.
Remove the control source for that and make it truly unbound. Then in its After Update event, set the .DefaultValue property to the value you just entered. Then when you have a new record, it's default value will always be the last thing you typed into it.
Me.RevisedCost.DefaultValue = CStr(Me.RevisedCost)
For some reason, the .DefaultValue property always wants strings as arguments. Don't ask me why Microsoft did that. If you use it to do math, you'll just have to change it back to currency using CCur(Me.RevisedCost).
Michigan Dept. of Environmental Quality, Air Quality Division