Before you start replacing items, plug into your OBDII and read what fault codes may be present in the system. This should give you an idea to help you diagnose the issue. Without this, we could play the guessing game as it could be a number of things. You can have a local Autozone pull the codes, but sometimes they wont read the fault code correctly and sometimes it will be a dealer only code. You can also invest in a really good diagnostic scanner if you plan to continue to work on your BMW.
2008 BMW 328i Base Sedan - Tools - Page 8
Read the code and let us know what you find out.