Let's go back to basics. Sometimes doing this will uncover things that were overlooked. I am pretty sure that it is your diet from the gains ( or lack there of) and the bodyfat. I have had people tell me that they were consuming 1000 calories a day and were obese. As you pry into every minute of the day you find all these extra worthless calories that they are consuming that they are not telling you about.
You can do this, but you need to be patient. Eat every 2-3 hours. I will not pretend to be a diet expert however i do know a little and what works for my body. Most of the things are universal though.
You need to eat clean and do not starve yourself. Adding cardio will advance the progress, but do not overdue it. You may get discouraged and then stop everything.
I would keep your proteins to lower fat proteins like skinless chicken breast, tilapia, and tuna fish. I would stay away from red meat until bulking and then still limited. Use avocado and almonds for fat. Yes you need it! Carbs - baked potato and pasta (no sauce). Brocoli also adds to carbs. Obviously veggies.