You’re biggest problem is that you are doing way too much aerobic activity - you’re probably eating all right but your burning all your calories sprinting and swimming instead of building muscle. When you are trying to bulk up, you should do almost zero cardio outside of your lifting.
If you want to gain muscle mass, switch to a high volume training routine. Take a look at the “German Volume Training” article. You will want to change routines completely every 4-8 weeks so your body doesn’t adapt and stop growing.
Try not to lift longer than hour a day, and don’t work a muscle group more than once every five days at most. Unless you have exceptional recovery abilities or are taking steroids, you should definitely not be squatting and benching twice a week, at least not regularly. I would also recommend a three-day or four-day split.
After each workout, chug some whey (at least 30g) and some simple carbs (fruit juice, sports drink, or recovery drink). Whey protein is not ideal before bed - a slower digesting protein like cottage cheese or casein is better, and even meat will stay in your system longer.
Don’t give up and keep working hard. You are obviously willing to put in the effort, I think you’re just putting to much time and energy in non-lifting exercise. A successful body-builder is an animal in the gym, a pig at the table, and a lazy bastard the rest of the time. Get as much sleep as possible and do as little as possible when you are not training and you’ll probably start growing like a weed.