I don't like 3. .. e5. White is attacking you on one point (d5) twice. e6 could be a natural defender. It might lose a pawn after:
3. .. e5 4. Bg5 Be6 5. Bxf6 Qxf6 6. exd5. Black can recapture the knight with 5. .. gxf6, but that leaves the black king side wide opened.
12. .. Bg6 can be replaced by
12. .. Nxf3 13. Nxf3 Bxg4 and you have at least two pawns for the knight. Not enough, but better then what you play in the game.
17. b4 is a move of white, not black. Instead of 17. Qa5 17. b4. 17. Qa5 was a bad move of white and you responded good to it.
Your move 17 doesn't look bad, I was saying I think he missed a better move, to show how bad your position looks (to me anyway) at that point.