There are many people on this site with good ideas.
Heres some of what Ive done, plan to do, or read about so far:
One mistake to avoid:
My M20B25 was rebuilt by previous owner and I believe they did the rings but not the pistons. So when I checked compression it was real low although even across cylinders. My mechanic said you cant do rings on these motors without new pistons, they wont hold compression. He explained it to me but i forget the details.
This was before I bought my brand new M20B25 for about $3500 with 2 year warranty from BMW. Love it.
Also Ive heard of these spanish replacement heads that crack easily.
You could look into the "stroker" motor. "super eta", e block with i heads etc.
head bolts are an issue, one time use? (expensive)
I saw somebody had some replacement set that were suposed to be better
Everyone says clean out the intake manifold.
I think turner motorsport has some nice packages. but expensive.
pistons rods, cams (shrick?)
Dont use -153 ECU use -173 ECU if its a an i motor.
I love my Dinan chip or Turner chips rocks. I got my Dinan on ebay for $40 +15hp +15 ft lbs at 4500 rpm
17 or 19 lb type III, Bosh 4 pintel fuel injectors instead of 14lb type I
Make sure you have right fuel pressure regulator.
I hear Bosch platinum 2 or 3 work not the 4 prong ones.
I'm still running stock.
BMW or Beru or maybe Kingsborne wires.
I'm working on getting Kingsborne 8MM silcon suppression core wires (with the new sensor wire, this is a must I think). $129 red, blue or black
Bavauto intake with KnN filter but you have to build your own heat shield.
Its a HAI "Hot air intake" LOL.
or get signature motoring heat shield without the bavauto bracket etc.
get adapter and filter.
Oh well good luck.
Let us know what you do.
BMWCCA autocross tomorrow here in SD but the wife wont let me drive. waaaahhhhhh
Oh well I need my new yokohamas before the next Auto-X anyway.