In General Relativity we see spacetime as a manifold; in this context vectors can't be defined on the manifold but need to be defined on the tangent space of the manifold. So each point of the manifold has its own tangent space and different vectors in different tangent spaces cannot be easily compared. At last each tangent space has its own metric tensor $g_{\mu \nu}=\partial _\mu \cdot \partial _\nu$, where $\partial _\mu,\partial _\nu$ are the base of the tangent space.
Problem is: my geometrical intuition makes me think about the tangent space as a flat space; if you have any 2D or 3D object in everyday experience the tangent space at one point is always a flat one. But it's not only intuition: spacetime locally looks like $\mathbb{M}^4$, so locally it looks flat or to say it better: locally can be approximated with a flat spacetime; but seems to me that the tangent space at one point is simply the space that better approximate the area around that point; this also push me to say that the tangent space should be always flat.
So is the tangent space of a manifold always flat? Or equivalently is the tangent space always $\mathbb{M}^4$?
Based on the upper reasoning seems to me that the answer should be yes, but this seems to create a problem: in GR we use the Christoffel connection so the curvature can be calculated using only the metric tensor $g_{\mu\nu}$, but if the tangent space is always flat then the metric tensor is always "a flat one", in the sense that it generates always flat curvature. This is obviously absurd. How can we get out of this apparent contradiction?
Edit: Based on the answer of Javier tangent space is indeed always flat. Does it mean that I can take any tangent space (with metric tensor $g_{\mu\nu}$), apply a change of coordinates and get the metric tensor of $\mathbb{M}^4$ ($\eta _{\mu\nu}$)? This is important because this is what flatness means; am I right?
And also: we state that the metric is calculated by looking at the rate of change of the metric $g_{\mu\nu}=\partial _\mu \cdot \partial _\nu$, but the metric is always flat! So the rate of change is always zero because every tangent space is flat! How can we deal with this?