Flop seems fine, I maybe c-bet a bit larger, but I don't really know.

Turn seems like a check/call rather than a check/fold. His range as you see it is something like {AhKh, AQ, 99-QQ}. If you bet then you probably fold out 99-JJ a lot, whereas when you check he may well bet here with those (and you have more than enough equity to call).

When he shoves the river I think we can safely take 99 and JJ out of his range, which were the only two hands you were ahead of so the fold here seems fine to me.