For shakes using half and half in them can add a lot of calories, and powdered milk added to protein shakes or even regular milk is a cost efficient way to add protein and calories.
A weight gainer shake I used consisted of 2 scoops protein, 8 oz half and half, 12-16 oz milk, and a serving of or two of powdered milk all mixed together. Chocolate syrup can be added for flavoring, as I always did. I'd always use a blender then take the pitcher and set it in the freezer to let the air release from the drink. Wait 4-5 minutes and you'll see the volume dropped a pretty good deal. I've always had a sensitive stomach so if I skipped that I was pretty miserable.
Additives like bananas are always a plus too, I like the flavor but not the texture when in a shake. I usually just ate one to go along with the shake.
Don't underestimate how much protein you can add by having a dehydrator and making jerky. Been a staple of mine for years.