after 24...Nxc7
Here you played
25.Be2 Nd5 26.Bc4 Kf8 27.Bxd5 cxd5. This was completely wrong. It's not wrong to *ever* play bishop takes knight, since transformation of advantages is a basic technique in endgames. But instead of transforming your advantage, you basically gave it up for nothing. You should have waited for the right moment to play bishop takes knight. At a minimum, you needed to centralize your king first.
To learn how to play with the bishop pair, see a classic demonstration Rosenthal vs Steinitz, Vienna 1873. You can search the web and compare what different experts think about this game. Also by searching you will find links to other interesting examples. In particular, Reti in
Masters of the Chessboard gives a good explanation of black's method in Rosenthal vs Steinitz. The kibitzing by Honza Cervenka (2002.10.07) at chessgames.com is an *extremely* terse paraphrase of Reti's explanation.
https://www.chessgames.com/perl/chessgame?gid=1132616 But I recommend reading Reti's notes if you can find them.
after 27...cxd5
This position is about equal, but very quickly you turned it into a loss.
28.Kf2 Ke7 29.Bg3 Ke6 30. Ke3 b5 31. Bb8 a6 32. Ba7 Nd7 33.Bd4 g6 34.g4 f5 35.gxf5+ Kxf5 36.h4 h5 37.b4 g5 38.hxg5 Kxg5.
after 38...Kxg5
White is lost. Except for 28.Kf2, just about all your moves were at least a little bit bad. Therefore, for now I recommend skipping a study of two bishops endings and instead study various one bishop versus one knight endings. This will also help you play two bishop endings better, since knowing when to play (or not to play) BxN is pretty important in that ending.