So I have been messing around a lot with the weight painting on the shoulders. I'm still new so I don't know much about the type of weights should be on the shoulders. I've tried a lot of different weights but my model keeps deforming. I'm content with sliding the arm forward/backwards like when you're walking, but moving it in another way like raising your hand for a high five or moving your arm back to throw a punch, the shoulder deforms and I don't know why. Is this because of my weighting, or because of the model itself?
I'm not very good with rigging characters, but no one else has posted an answer, so here's what I know:
Check the weights for the surrounding bones. The deformation looks like the upper arm bone strength is mush higher than the shoulder/torso bone strength. Blending the values between the two should help.
I'm very inexperienced when it comes to rigging, but I'll try to point you in the right direction, your rig lacks the collarbones, as scuh you expect their behaviour to be included in the shoulder.
I think doing your own rig can be agreat learning experience and you can also tailor it to your own needs, I'd suggest importing the rigify rig and studying it a bit to see how it works, also looking at a few anatomical references to understand where you should insert the bones into your model.
Also skinning is very trial and error, try animating different movements and seeing how your model reacts, most high end rigs have corrective blendshapes which iron out some kinks when doing certain movements, or bulge out muscle when flexing, many ways to skin a cat.