What reason did the dealer give for not having the car done when (and as) promised? And parking tickets? That's just stupid.
Talk to the insurance company, explain the situation, and find out exactly what you need the dealer to provide to avoid paying for those rental charges. Remember, the insurance company doesn't care who pays and won't have a problem helping you, they're just looking for the easiest path to get their money.
After that it's simple, just make a list of exactly what you need the dealership to do to fix everything they've caused, talk directly to the GM (or similar person in charge), and demand that they get each item on the list done. Unless you did something to cause the delay, parking tickets, or subsequent damage, there's no way in hell you should pay anything and I can't see any reasonable business person not understanding.
Just remember to remain professional, keep emotions out of things, and try to be as objective as possible about the situation.
If you don't get anywhere with the dealer, you can always use the post-service survey and BMW North America as a way to voice your displeasure. In many cases, these get much more attention than many people give them credit for and can be a very nice way to get revenge on a less than scrupulous service advisor, etc.
One thought though - you might be screwed with the rental charges if the dealership gave any indication that they might not be able to complete the car in time before you left the car with them for service or if the estimated date was known to be contingent on the availability of parts, etc. Two weeks is quite a long time to let things go and the dealership might have a valid argument if they offered to let you pick up and drive the car until whatever they needed to complete the work actually came in.