I see two problems.
First, you have sy1[x] and sy2[x] But you set initial conditions on sy1[0] and sy2[0]. so NDSolve thinks that these are delay differential equations. Should they be sy1[t]? I found this by looking for instances of variables that are not simple functions of t (making them delay deqs):
(cpdae /. Equal -> Rule) /. x_[t] -> a
You can see what is left only has functions of x so something is wrong.
Second, to check your equations I did
In[63]:= (cpdae /. t -> 0) /. (cpinit /. Equal -> Rule)
Out[63]= {True, False, True, True, True, True, True, True, True, \
True, True, True, True, True, True, True, True, True, True, True, \
True}
Note that equation 2 is not consistent.
In[71]:= cpdae[[2]]
Out[71]= la2[t] + 0.0900757 (ry^\[Prime]\[Prime])[t] == 0.882742
In[73]:= cpinit[[{26, 35}]]
Out[73]= {la2[0] == 0, (ry^\[Prime]\[Prime])[0] == 0}
Edited: In thinking about it further, the equations should not be all True. You should never define the lowest derivatives in a set of differential equations. The result of substituting the initial conditions should be a list of equations with the lowest derivatives of each variable from which you can determine the initial condition of those variables.
I hope this helps.
Regards,
Neil