Questions are good, no worries, ask long as you're trying and learning.
I think you could get away with not doing barbell rows and pullups for every workout. Maybe one workout both of them, and the other two workouts one of each. Pullups are primarily a lat exercise - an upper back builder. Barbell rows work similar muscles but are a completely different motion.
I would also try to do one day of incline presses instead of shoulder and bench. Incline hits your chest and shoulders, keep the angle of the bench around 30 degress though, not 45. So two workouts could be bench press and shoulder press, the other could be just incline press. Right now, I only do shoulder presses once a week, usually coupled with flat bench. My other pushing day I have incline presses.
For the cardio, if your main goal is put on mass/muscle I would limit the cardio to once a week for 30-45 minutes, sticking in a 60-70% range, this is just to keep your heart in check.
Take both the protein and creatine post workout, milk or water is up to you, personally i use water, milk doesn't seem like it would go over so well after lifting with me. I don't know about the creatine pills per say, but basic creatine monohydrate...all you need is 5 grams post workout.
Also, do the "extra" stuff you have after the rows, not before.