I'm wanting to calculate the covariance between two portfolios $A$ and $B$ which are allocated to assets $X_i$ (where $i \in \left[1, 2, \cdots, N \right]$) with weights $\vec{w_A}$ and $\vec{w_B}$, respectively. Assuming I already have the covariance estimated between these assets ($\Sigma_X$), I know I can calculate the covariance between these two portfolios ($\Sigma_{A,B}$) using the bilinearity property of covariance, where $W$ is the $2 \times N$ matrix containing $\vec{w_A}$ and $\vec{w_B}$ in its rows:
$$\Sigma_{A,B} = W\Sigma_{X}W^T.$$
However, there may be a slight issue with regard to the use of log returns or simple returns. The best practice for calculating $\Sigma_X$ would be to do so using log returns of the underlying assets. However, taking the weighted sum over those log returns will not result in the log return of the portfolio since log returns do not accumulate across assets. Bilinearity depends on the new random variables ($A$ and $B$) being linear combinations of the underlying random variables ($X_i$). This means that I either need to calculate $\Sigma_X$ using simple returns of the assets, or I need to accept that I am accumulating log returns across assets.
The optimal scenario would be if there is a way to convert a covariance estimated via log returns into a covariance estimated via simple returns (and vice versa). That way I could still calculate $\Sigma_X$ correctly, convert it into a geometric covariance estimation, apply bilinearity to get the portfolio geometric covariance estimation, and then convert that back into a log covariance estimation. I haven't come across such a transformation.
For the record, I'm doing these calculations with daily observations, so I recognize that the difference in these two calculations will probably be quite small as log returns approximate simple returns when they are small.
What's the best practice?