I can not see anything you did wrong. But MMA behaves very peculiar. The error message seems spurious.
You have 3 uncoupled ODE. You may as well solve them separately and compare the solutions:
eq := {D[X[t, x], t] == 0, D[Y[t, x], t] == D[Y[t, x], x],
D[Z[t, x], t] == D[Z[t, x], x]}
ic := {X[0, x] == x, Y[0, x] == Cos[x], Z[0, x] == Sin[x]}
bc := {Derivative[0, 1][Y][t, 0] == Derivative[0, 1][Y][t, 2 Pi],
Derivative[0, 1][Z][t, 0] == Derivative[0, 1][Z][t, 2 Pi]}
sol0 = NDSolve[{ic, bc, eq}, {X, Y, Z}, {t, 0, 2 Pi}, {x, 0, 2 Pi}]
eq := {D[X[t, x], t] == 0}
ic := {X[0, x] == x}
bc := {}
sol1 = NDSolve[{ic, bc, eq}, {X}, {t, 0, 2 Pi}, {x, 0, 2 Pi}]
eq := {D[Y[t, x], t] == D[Y[t, x], x]}
ic := {Y[0, x] ==Cos[x]}
bc := {Derivative[0, 1][Y][t, 0] == Derivative[0, 1][Y][t, 2 Pi]}
sol2 = NDSolve[{ic, bc, eq}, {Y}, {t, 0, 2 Pi}, {x, 0, 2 Pi}]
eq := {D[Z[t, x], t] == D[Z[t, x], x]}
ic := {Z[0, x] == Sin[x]}
bc := {Derivative[0, 1][Z][t, 0] == Derivative[0, 1][Z][t, 2 Pi]}
sol3 = NDSolve[{ic, bc, eq}, {Z}, {t, 0, 2 Pi}, {x, 0, 2 Pi}]
We may now compare the solutions from the ODE with 3 functions and the separate ODEs by subtracting the corresponding solutions and plot the difference:
ftest = FunctionInterpolation[(X[t, x] /. sol0[[1]] ) - (X[t, x] /.
sol1[[1]] ), {t, 0, 2 Pi}, {x, 0, 2 Pi}]
Plot3D[ftest[t, x], {t, 0, 2 Pi}, {x, 0, 2 Pi}, PlotRange -> All]
ftest = FunctionInterpolation[(Y[t, x] /. sol0[[1]] ) - (Y[t, x] /.
sol2[[1]] ), {t, 0, 2 Pi}, {x, 0, 2 Pi}]
Plot3D[ftest[t, x], {t, 0, 2 Pi}, {x, 0, 2 Pi}, PlotRange -> All]
ftest = FunctionInterpolation[(Z[t, x] /. sol0[[1]] ) - (Z[t, x] /.
sol3[[1]] ), {t, 0, 2 Pi}, {x, 0, 2 Pi}]
Plot3D[ftest[t, x], {t, 0, 2 Pi}, {x, 0, 2 Pi}, PlotRange -> All]



The separate solved solutions seem o.k. ,but it looks like MMA screws up badly when you give it 3 uncoupled ODEs to solve at once. I can not explain this, but I think you should report this to [email protected].
X,Y,Z
are independent. To solve separate equation for Y or Z we can usePeriodicBoundaryCondition[]
. $\endgroup$