When adding CRO to an existing stake, any CRO rewards earned from that stake are automatically claimed and returned to the wallet as part of the transaction.
Koinly doesn't seem to be tracking these auto rewards. It correctly creates a withdrawal transaction for the CRO staking fee, but does not create a deposit for the auto reward.
This causes the API value and the calculated value to diverge over time.
Edit:
As an example, see this random transaction showing the problem: https://crypto.org/explorer/tx/24FC700D601BB2F9C3AD7E983AE5DF17B0A021DCCBB9A88F495EBF16A3AEFABA
Note how there's the fee (0.0002 CRO), the amount delegated (9.21132838 CRO), and the auto claimed rewards (0.00014328 CRO). It's the latter that isn't being properly accounted for.