Having worked in the marine and automotive racing industry, not to mention my current job in aviation, I've done plenty of overhauls and "rebuilds".
The work itself is not all that hard. Especially if you contract a competent machine shop to complete the critical items.
However, when dealing with used parts, there are nearly always "issues". Including metal fatigue, corrosion, wear, cracks, distortion, bending and so on.
When I overhauled my aircraft engine, I chose to install all sorts of new parts. Even though it was not required. This ensures a good service life from the engine without risk of installing a used part that might not have much life left in it. If I had the funds, I would have purchased a brand new engine.
Aluminum, for example, has a fatigue limit. It is capable of just so many fatigue cycles and then failure results. We can perform all sorts of non destructive testing on aluminum parts, get a clean bill of health, and still have a part that will fail in short order.
Those that "rebuild" or "overhaul" engines need to have detailed knowledge about the particular engine. Armed with that, the results can be spectacularly good.