As you said you have a linear system of ODE's.
You may write it in MatrixForm:
x' == A x
like this:
your equations
de = {Derivative[1][DC][t] == -kE DC[t] - kPT DC[t] + kTP DP[t] +
kD MC[t], Derivative[1][DP][t] == kPT DC[t] - kTP DP[t],
Derivative[1][IC][t] == -2 kD IC[t] - kE IC[t] - kPT IC[t] +
kTP IP[t], Derivative[1][IP][t] == kPT IC[t] - kTP IP[t],
Derivative[1][MC][t] ==
2 kD IC[t] - kD MC[t] - kE MC[t] - kPT MC[t] + kTP MP[t],
Derivative[1][MP][t] == kPT MC[t] - kTP MP[t]}
Get rid of the left-hand sides
de1 = (de /. a_ == b_ -> b);
and make the matrix A (here called mat)
mat = Table[
Coefficient[de1[[j]], #] & /@ {DC[t], DP[t], IC[t], IP[t], MC[t], MP[t]}, {j, 1, Length[de1]}];
% // MatrixForm
And really we have a system equivalent to the first one
sys = mat.{DC[t], DP[t], IC[t], IP[t], MC[t], MP[t]};
(de /. a_ == b_ -> b) - sys // Simplify
Then your solution should be
x = Exp[ A t ] . x0
or
xx = MatrixExp[mat t].{IC0, 0, 0, 0, 0, 0}
which gives a very large output which can't be handled conveniently.
So I define some numerical values
values = {kD -> .03, kE -> 1.4, kPT -> .75, kTP -> 3.1}
and the numerical solution
xxv = xx /. values
which interestingly has only two components.
But it fulfills your system of equations:
(mat /. values) .xxv - D[ xxv, t] // FullSimplify // Chop