There is literally no way of knowing since you just check/call the whole way. No reads on CO, CO is going to open wide, and on the river they could just be betting hoping you fold so you don't split the pot.
I think you need to 3bet pf. That will make the rest of the hand much clearer.
We don't really get or want to make certain decisions earlier in a hand just to make future hypothetical decisions easier. 99 vs. a CO open is a pretty standard call, especially at 2NL where opens tend to be a bit nittier.
River I think in theory is a call but in practice vs. a pot sized bet OTR I'm folding.