Sorry to hear about you woes. In all honesty, $900 isn't too bad. BMWs are expensive to maintain and own, but they are wonderful cars. Do you have any friends that can help you do the work on the car? Are you member of the BMW CCA in RI? The guys in the BMW club have helped me out on several occasions. Guys on this site in WA have helped me and DTM also. Reach out to your fellow gearheads and the problem might not be as bad. You can all of the parts for you car online for less and install them with your buddies.
Good luck with your car. If you get another car, steer clear of M cars until you can afford to fix them and maintain them. The reason that they are M cars is that the engines are more tuned. They will always cost more to upkeep and repair.