This is just my opinion:
MEDIC: In truth, the Kritzkrieg is a good medigun, but it's really somewhat situational. Using it on a regular ubercharged ally or using it on a Soldier or Demoman to back up an ubercharged ally, for example. Medigun ubers are better for Pyros or Heavies that can clear out rooms or focus fire on a priority target, Kritzkriegs for Demomen or Soldiers who can spread splash damage and spread the enemies around (or separate the enemies' body parts from one another). Another idea is to team up with another Medic and Kritzkrieg Ubercharge a person with a Medigun Ubercharge. This is really good for Heavies and Pyros, whose high rate of fire will make great use out of the excessive crits.
PYRO: Regarding the Pyro, Pyros are primarily a flanking class. So it annoys me to no end to see Pyros using the Backburner, which has a 100% chance to critically hit from behind, to strike from directly in front of someone. Also, Pyros who don't know how to use their regular flamethrower's compression blast. The compression blast is there to protect you from explosives like Sticky Bombs or Rockets. Some fail to see, however, that not only is this a legitimate weapon, but that it can knock back rockets from Engineer Sentry Guns and keep enemies from getting to the water and keeping themselves from getting de-fired. And speaking of fire, always spy-check everyone. If someone's just coming up from the sewers at 2Fort, give 'em a puff. Someone's coming from the Area 1 spawn at Dustbowl, puff 'em. You see someone heading toward the defense's spawn room at Gravelpit, give 'em a puff. Anywhere you find Engineer buildings, it's not a bad idea to hang back and play bodyguard to deter any potential Spies from sapping devices.
ENGINEER: Job one of being an Engineer is helping. Help keep enemies out of your area, help move the front lines, help lighten the burden on medics by plonking down a dispenser. So it annoys me to no end to see Engineers neglecting to help other Engineers build/upgrade/maintain their sentries, dispensers and teleporters, especially if there are spies giving them grief by repeatedly sapping their buildings. Your buildings will be fine while you go help a buddy with his buildings. Also, building in bad places is a sure way to earn some ire. Yes, it's a good idea to put sentries on overhangs or hard-to-hit places. No, it's a bad idea to plonk down a sentry where it'll be easy to out-range it, like in the middle of the courtyard in 2Fort.
SCOUT: The Scout's primary power is light skirmishing, but remember that his low health kind of deters him away (read "yells STAY THE FUCK AWAY") from direct combat. Flanking is a great tactic to use against enemies, especially Heavies, Soliders and Demomen. Get in close, blast 'em a few times with the Force-A-Nature or Scattergun, then run around them and hit them with the Bat or Sandman. Worst-case scenario is they find a buddy and you get blasted. Best-case, they die, alert their team and you hide somewhere to prepare for your next hit. Also, while the Force-A-Nature is powerful, it is risky to try to get in close against Pyros and use it. This is why I prefer the Pistol to the Bonk! Atomic Punch, so I can do some weapon heckling. A good weapon heckler can trick his opponent into running headlong into an unforseen trap, like a well-hidden sentry gun or close to your spawn room. Or, they'll try to see your game and try switching weapons. Example, you're fighting a Pyro. Blast 'em a few times with the pistol, then switch to the Scattergun/Force-A-Nature and commence blasting at medium range, then back off again and switch back to the pistol. They'll probably try to hit you with the Flamethrower in close range, when they see you back off they'll switch to the Shotgun/Flare Gun. When you close in again, they will be so taken aback that they won't have time to switch back to their main or melee weapon. This strategy can work against most classes, but don't rely on it against Heavies or Demomen. Scouts CAN be used defensively with their high speed, keeping the pressure on the attacking team, but you shouldn't need more than one or two, at most.
DEMOMAN: Versatility is no excuse for sitting back and setting stickybomb traps. The Grenade Launcher is strong enough to reduce most enemies to giblets, or at least damage them long enough for any nearby allies to finish them off. It's true that the Demoman is probably the worst class in close-range combat since the Grenade Launcher is inaccurate at best and remote detonation keeps you from using the stickybombs, but don't forget that the bottle isn't exactly weak. It does good damage when you're trying to fend off a Spy or Scout long enough to lob a bomb or two at 'em. Stick by your allies would be my advice if you're gonna stick around the frontlines.
SPY: The Spy is my least-played and one of my least-favorite classes, second only to the Sniper, but even I've picked up a thing or two. A Spy's role is to sew dissention in the ranks of the enemy team, so here's my advice. If AllTalk is enabled, use that to your advantage. For example, if an enemy saw you while cloaked and blurted out your disguise, change disguises. They'll be looking for a Demoman, completely ignoring that Spyro (Spy disguised as a Pyro, for the uneducated). Sap an Engineer's buildings, duck around a corner, cloak and change disguises to keep them guessing. Keep enemies guessing by switching up your disguises. It might not be a bad idea to try playing the other classes to learn their tactics. And make a mental note of where medkits and ammo kits spawn to stay out creating suspicion in the enemy ranks. Sometimes merely blending into the background can make all the difference in throwing an enemy off your trail. Hide around a corner and cloak, and when they turn their back, uncloak and dagger 'em. Your revolver is also very accurate for a six-round pistol, so at medium-long range it can make a substitute Sniper Rifle. Disguising as an allied unit can also throw off defenders. Imagine their surprise when that Pyro-Medic combo ends up being a Spy who was duping them into attacking the Pyro-Spy while the Medic got to a Heavy in need! Finally, there are some disguises that should always be ignored. These are the Scout, Soldier, Heavy and Medic. Disguising as a Scout makes you too noticeable since you're going to be slower than a real Scout, Soldiers and Heavies are too slow and make it easy to bump into other people, blowing your cover, and when disguised as a Medic you don't have an ubercharge display to enemies, so they'll be able to sniff you out lickety-split. Disguising as an enemy Spy is a risk, but the payoff can sometimes be really great and make enemies look like they're taking classes in Obviousness 101. Do it near sentry nests and make it look like you're an allied enemy Spy making a retreat. Snipers too are a high-risk try. My suggestion is to do it in the corner of a battlement and stab anyone who's trying to make a break toward the no-mans land. Yes it's tempting to just go right for the Snipers, but isn't that what YOUR Snipers are there for, to counter enemy Snipers? Finally, don't call for Medics at full health or when you're near a medkit spawn location either, 'cause it'll just make you look suspicious.