Hi!
xTensor is always using the metric (g in our case) to move indices up and down.
(By the way you should not use g ans an index and as a metric so remove it from the list of indices in DefManifold.)
Now, if you have a Cartesian metric, then g[-a,-b] is the same as delta[-a,-b]. However, to make xAct understand what you mean you should write g[-a,-b] instead of delta[-a,-b], because delta[-a,-b] has no meaning in xAct. That should hopefully solve your problem. As xAct cares about if indices are up or down, so you will have to type them in like that. Hence, contractions are always between an up index and a down index. If they don't appear like that in your original expression, you can raise and lower them with g[a,b] or g[-a,-b], which in your case will not change the meaning because you have a Cartesian metric. Without a Cartesian metric, such expressions would not have a covariant meaning.