I am flying from San Francisco to Bulgaria through Frankfurt and Munich in a few days. I hold a green card and I am a Bulgarian citizen. I just found out about the 3 month passport expiration date rule. My Bulgarian passport expires 2 months after return date. Since I am a EU citizen, does that rule apply? Am I going to have problems passing through Germany or even in San Francisco? I was planning on renewing my passport in Bulgaria.
No, the rule does not apply to you and you can do this trip on your current passport.
The rule defined in the Schengen Borders Code is for third-country (i.e. not EU/EEA/Swiss) nationals. You are protected by the EU freedom of movement and only need a valid ID (not even necessarily a passport).
Incidentally, third-country nationals are generally required to have a travel document valid three months after the intended end of their stay in the Schengen area but that makes no sense for you as you have a right to stay in Bulgaria (or even in Germany, with a few caveats) as long as you like.
My wife (Bulgarian and US citizen) traveled from the US to Sofia via Frankfurt last year when her BG passport was already expired. In Frankfurt she used her US passport and in Bulgaria they accepted her expired passport along with a valid BG national identity card, no problems at all. She renewed her passport while in Bulgaria.