I suppose ONE ideal outcome would be for BMW to give you the '04 WITHOUT you paying the additional $5,000. The deal might then be considered final (and fair) by both parties. As I said before, BMW's initial offer will inevitably be more favorable to them; the company might be willing to negotiate somewhat--and $5,000 is small potatoes in light of what you originally put down for the car (lease or no). Still, you don't want to push them if they're hard set on their offer. Having owned 7 BMW's (I'll assume all or most were bought new) gives you significant leverage over an average BMW owner! If you really love BMW's so much (I can identify), why don't you get all your money back and buy a CPO 2001-2003 540i or M5 or 2001 740iL--you could get any of those for well under $50K--and have some $ left over.
For some odd reason, I can actually feel what you're going through. In April, one day before I was to go up to NJ and pick up my 535i, I had a nasty headache after a long day at work, and ran my Acura Legend under a truck that stopped (for no reason) at the end of an on-ramp. This caused $2-3,000 of damage to a car that's only worth about $3,000. (The truck did not stop, so fortunately my insurance is not involved). All the damage is above the front bumper, and the car is still completely driveable. A couple weeks later, I actually sold the car to a guy who said he'd fix it himself for $800. A week after that, he called me and said he decided he didn't want the car, so I bought it back rather than get into a legal argument (in the future, always put EVERYTHING on paper--making verbal promises, even if they seem reasonable and straightforward, is not enough).
Now I have a driveable but wrecked car next to my BMW, and while I wouldn't hesitate to spend $3K to fix it (I really love that car), that money could be spend to buy a nice little 325is that's in good condition--or applied to a newer 540i if I got rid of both my cars.
I guess it's just a case of whether one really needs two cars, and whether it's better to keep or get rid of one that's "defective" in a broad sense of the word!