Hi Ruben,
I don't understand where do you see a problem. Take for example this computation, which produces the same coefficients as the stackexchange page you mention. I use an arbitrary dimension to make it clear that this computation is dimension-independent:
<< xAct`xPert`
DefConstantSymbol[dim]
DefManifold[M, dim, {a, b, c, d, e, f}]
DefMetric[-1, g[-a, -b], cd]
DefMetricPerturbation[g, h, \[Epsilon]]
Perturbed[Sqrt[-Detg[]], 2]/Sqrt[-Detg[]] // ExpandPerturbation // Expand // NoScalar
Collect[% /. h[LI[2], __] -> 0, \[Epsilon], ToCanonical]
As you said, if the full metric is exactly g + h then xPert's h1 is your h and the perturbations of higher order (in this case just h2) must be replaced by zero.
Cheers,
Jose.