Hi,
I think xTensor's result is consistent with the formula you mention. They are just written slightly differently. You need the identity:
PD[-c][g[a, b]] == - g[a, d] g[b, e] PD[-c][g[-d, -e]]
which adds the missing sign.
In fact, xTensor canonicalizes the LHS into the RHS of that identity automatically.
Cheers,
Jose.