pick an app or website, and count your calories every day for a couple weeks, measure your foods to be more accurate. What your meal plan above looks like it could be anywhere from 1800 calories to 4000 calories. How much peanut butter on each sandwich, what kind of bread, what is the whey shake made with, does the chicken + pasta have sauce and/or how much is each serving , etc.
If you've been struggling for a year to gain weight "maybe" or "usually" on your meal plan doesn't really work. it has to be a meal PLAN, not a meal suggestion. It's the only way to really nail it down if you're having issues adding weight. At the very least, you need to measure it so you can see "at 2800 calories a day, I didn't gain anything over a month" and then figure out how to get more
I get that at 17 its hard because of having to deal with mostly what your parents buy foodwise, but even so. I don't see a vegetable in there at all, some of what may make it harder is a lack of some of the vitamins, minerals, micronutrients, etc.