When you write u[0] you are getting a chart function object. The global diff function calls the derivative method on the object, and this one is only defined for coordinates of the chart.
What you can do is call the expr method on the chart function to get the underlying symbolic expression:
sage: diff(u[0].expr(), eps)