Opinions differ. While it's true that 99 is often way ahead of BU's open range, you'll find yourself out of position postflop when called, on most boards with overcards and without a clear idea of how BU is playing. Some people prefer to 3bet, others to call preflop. Just pick one and do your best until you know which way to tip the balance.

As played the turn check/raise doesn't make much sense, and usually stems from a sense of insecurity. You know you can be good, but you wouldn't know what to do if he bets again on the river when you call the turn, so you make some kind of information raise. Don't. Just call and see what happens, trust your reads and if you end up wrong, learn. If you avoid all difficult decisions you won't learn anything.

As played on the river frankly BU's line doesn't make much sense, i don't really get why he would make a delayed c-bet with a draw, and if he's not bluffing he's repping a monster by overbetting the river. Yet I doubt he bet/called 2x on the turn. Best guess he checked back an overpair or a set on the flop thinking he was being tricky. If you think he'd always bet something strong on the flop but might check back a draw for some reason, you can call the river.