so you started off at 5'10" tall and 143 pounds . . and after 4 years of lifting you ONLY put on 12 pounds, and so 155 today ??
AND that is with optimized testosterone levels ?
now thats the definition of a "hard gainer" -- I've got regular average joes that join my gym and I train them and put 12 pounds on them in 4 weeks, let alone 4 years!!! theres something wrong with this picture, or your training or your diet.
your only eating 2200 calories per day, YET your training 5 days per week plus doing cardio. your eating like a bikini girl. not even close to enough to be adding size and muscle. I'd add 1500 more calories to that just to start, maybe more.
IF you say you start eating more and you just get fat, I say BS, you don't even know what fat is

your 10% body fat, which means your ripped with a defined 6 pack. its not big deal to add some fat when trying to put on muscle.
it could be that you just don't partition nutrients very well. thats an easy fix, you may just need to change the timing of the foods that you eat and the way you eat, and then perhaps add in something like Metformin.
it could be your eating a majority of your carbs at times of the day that are not near your workout, thus your not insulin sensitive. it could be you eat most your fat at the same time you take in your carbs. lots of different factors , but prob easily fixed.
the main issue is you do not eat enough at all , period. for someone who weight trains 5 days a week and wants to put on size