This is not a full answer, but rather an attempt to clear up some misconception about the gradient: In particular, in my opinion saying that the gradient is a covector doesn't make much sense.
There are two ways to interpret the concept of vectors and covectors:
The first one is to say there is only a single entity - the vector - which has covariant and contravariant components. This is inspired by classical tensor calculus: when doing calculations, we often do not care about the placement of the indices of a particular tensor - after all, we can always lower or raise them (ie go from column vectors to row vectors and vice versa) by contraction with the metric tensor.
If you take this point of view, differential and gradient are two names for the same entity. It is somewhat misleading to say that the gradient is a covector, as what we really mean is that the gradient is a vector whose covariant components are given by the partial derivatives (whereas its contravariant components are given by contraction of the covariant components with the inverse of the metric tensor).
The second point of view - which is the one I prefer - is that vectors (or, more precisely as we're doing differential geometry, tangent vectors) are distinct from covectors (aka 1-forms). However, the scalar product gives an isomorphism between tangent vectors and 1-forms. The gradient is the (pre-)image of the differential under this isomorphism and an actual vector.