First off, I'm a Silver, so maybe in higher leagues, most of these things that I said doesn't apply.
Secondly, I can't download the replay, so I'm just gonna give you tips based on how I play in TvP.
Everytime I play a TvP in any game, like you, I usually go Bio. First, I start off with Siege Expanding (Getting a Rax with a reactor and a Fact with a tech lab for tanks, then expanding) and pressure my opponent early. Then I usually, if not always drop 2-3 more Raxes and a Starport and transition to MMM. Later on, depending on what my opponent goes for, I usually make Vikings (If they're going for Collosi) and/or Ghosts. (EMP's pretty good even when the Protoss isn't going for HTs/Archons.)
At one point, when the Protoss harasses my base with Warp Prisms, I usually just leave a small MM squad at my expansion/main to defend and deny any more Warp Prisms from coming.
Don't forget to keep on expanding and harassing with Marauder Drops. Since Barracks units are cheap, you should build a lot of Raxes over the course of the game. Around 20-30 minutes in game, you should have like 8-12 raxes up and running and transition to whatever your opponent is going for. If you want to and if you can micro really well, you can send in a couple of Vikings and snipe a bunch of Collosi and then run away before the toss notices. If the enemy has HT's, Scan if the toss has observers or not in their army. If the toss doesn't have any observers, Cloak a bunch of Ghosts and either Snipe or EMP the HT's and Sentries.
That's pretty much all I can say and I apologize if there's any mistakes and inaccurate tips, etc.
lategame, just be prepared and have both ghosts and vikings. If you can control your special units as well as your main army you can deal with toss fine.
Just make sure you have enough raxes to remax up quickly.
Even the smallest donations help keep sc2sea running! All donations go towards helping our site run including our monthly server hosting fees and sc2sea sponsored community tournaments we host. Find out more here.