I think fee-per-KB is fee per 1000 vbytes, not 1024 (KB -vs- KiB)
That is correct. Bitcoin uses kilobytes and not kilobits.
I think that minRelayTxFee, and FeeFilter does calculations in vbytes not bytes
This is also correct. Transactions are calculated in vbytes instead of bytes.
I think that minRelayTxFee, and FeeFilter ignore CPFP relations
For now. minRelayTXfee and FeeFilter cannot judge transactions based on CPFP outright as there is no way to know whether a transaction has CPFP until the child transaction gets relayed.
However, there is a pull requests which fixes this, slated for release in v0.20.0 [1]. The pull requests is beneficial for CPFP as the node would be able to fetch the parent transaction after seeing the child transaction.
[1]
https://github.com/bitcoin/bitcoin/pull/16851