So much versatility when played correctly. Zerg is certainly the hardest race to play but i also feel like its the hardest race to play against. You have to contain them, prevent creep expanse, defend from mutalisks, destroy overlords, and try and counter whatever they are building. As soon as you counter them, they can counter you without building any new structers (if they already have them up). When it gets to late game ultralisks **** everything.
Terran vs zerg is pretty much terran having to capitalize on zergs mistakes and if they fail to, they lose
Zerg can tech switch quickly but it's because they are such a reactive race. They HAVE to have the right units or they lose. Protoss and Terran are a little more forgiving in that aspect. Zerg also has to be micro'd very well.
Ultras are tough to deal with for sure. How good are you with drops? If you can snipe something like their spire before it finishes, it is a terribly set back for a Zerg. Also denying their third base is a big one. Generally a Zerg player wants to have 1 more base than their opponent since their units are spawned from their bases and they need the income. The biggest thing I can say. Is just scout. See if they make an early pool which means zerglings are on the way. A lot of zergs go hatchery first which means you either need to punish them or fast expand yourself
It's funny that Zerg is your hardest and Terran is my hardest to play against. Widow Mines..... -_-