I really struggled to add lean mass until I changed my workout routine. I've been a high volume guys for years. Now I'm doing a program that is low-volume and high intensity. The changes have been amazing.
Here's the theory..
1) TRAINING - provide your muscle with growth stimulus using heavy weight in the 8-12 rep range. I do 2-3 warmup/acclimation sets and then I do one all out, crazy rest/pause set or drop set. That is it for that muscle group. Then I move on the the next. Typically people annihilate their muscle thinking that tearing it way down means that it will build back better. Not necessarily. Provide the stimulus and then move on.
2) RECOVERY - you have to give your body time to recover. When you are doing high volume and 5-6 training days per week, your body is constantly trying to recover. If your body is trying to recover, it's not growing.
3) GROWTH - you not only need time to recover, you need time to grow. If you are back in the gym as soon as your muscle has recovered, you've not let your body acclimate to the stimulus you provided in the gym. So, allow time for recovery and growth THEN train again.
4) FOOD - you have to provide your body with plenty of energy (carbs) and subtrate (protein) in order to build muscle. Food is the most powerful anabolic in the natural bodybuiders repetoire. Quality food in appropriate quantity gives your body permission to grow. Your body is an adaptive machine. If you give it the food it can adapt to the stimulus provided in the gym. If you don't provide sufficient food, your body will not be able to respond.
These principles are particularly important for:
1) Natural bodybuilder
2) Ectomorphs (given your body fat comment, sounds like an ectomorph to me)
3) Older bodybuilders (your ability to recover slows down)