If you mutate the vectors that you store in D1, then yes, D1 will be changed. You need to copy the vectors if you need separate instances for both dictionaries.
So maybe (without trying it out)
for i in 1:length(CT)
D2 = Dict(k => (copy(D1[k]) .= CT[i]) for k in keys(D1))
end