I had my BMW 530i (I-6) head checked for straightness free, then had a shop cut it between .005 and .006. And they pressure checked it, all for about $90.00. I used an oversized head gasket, and also had put new threads in the block. I saw some new (used ) heads for sale online somewhere for $500.00. But then you would need the valves moved to the new head (unless they come with everything). Probably need to have them cut to match the new valve seats. And new seals. My valves were in great condition, so there was no need to touch them, as the head was good after the shave. I just can't tell you how to make sure the block is ok. Plus, the threads may look good before you torque the new head bolts. But then find out the threads were weak, only after you torque them and they pull out after all of that work. You have to have the block checked, and the threads checked, all before final assembly. Those damned aluminum threads just turn soft with overheating. I would not trust a used engine without a warranty. Then you have another problem, if you do the engine replace yourself, the warranty is no good. They usually only honor the warranty if a shop replaces the used engine. It's a crapshoot. Go with someone who is recommended by other BMW drivers. I personally would go with pulling the engine and getting another one. Mine did not have oil in the water. Usually, it's the other way around, because the water is under pressure and goes into the oil. Also, number #1, or #6 cylinders (on the 6 cylinder engine) usually go bad and leak. That's because of engine design. Although some people say cylinder #3 gave them problems. You don't have much to lose to pull the head to see if the engine is repairable. But, that's only if you yourself does the work. otherwise, you pay labor. That money might be better used for an engine swap. Just some thoughts.