Hi!
1)
When I try the following code in Mathematica 13.2 under Windows 10
<< xAct`xTensor`
$DefInfoQ = False;
SetOptions[AutomaticRules, Verbose -> False];
DefManifold[M4, 4, {a, b, c, d, f, p, q, r, m, l, h, j, n, t, s}]
DefMetric[{1, 3, 0}, g[-a, -b], CD]
DefTensor[V[-a], M4]
DefTensor[W[-a], M4]
MakeBoxes[Op[A_], StandardForm] :=
xAct`xTensor`Private`interpretbox[Op[A],
RowBox[{"{", MakeBoxes[A, StandardForm], " } "}]]
I only get an output like
2 {V_a} + W_a
I do not get an extra pair of (), so I have no idea why you got it. Check InputForm or FullForm on it to see something else was added.
2) If you want to use ToCanonical you have to stick to the kind of objects xAct natively handles like xTensor, InertHead etc.
ToCanonical decomposes your expression completely and makes another representation of your expression before it does the actual canonicalization.
Therefore, it will be very cumbersome to add another kind of object it does not recognize.
You can tell xAct that some object belongs to one of the recognized classes with InertHeadQ[Op]^=True etc, but in your case Op works like an InertHead, so I would recommend
DefInertHead[Op]
If you then want a special output you can change it by stopping the default, setting up your style, and starting the default for all other InertHead operators with
xTensorFormStop[InertHead]
MakeBoxes[Op[A_], StandardForm] :=
xAct`xTensor`Private`interpretbox[Op[A],
RowBox[{"{", MakeBoxes[A, StandardForm], " } "}]]
xTensorFormStart[InertHead]
Regards
Thomas