There is a serious mistake in your decision! Why do you define the line l in such a strange way, taking on it arbitrarily point C? This line is already defined by its equation! And if you specify another point C, you would get a different line.
I would write your code like this:
sys:=solve([distance(T,A) = distance(T,B), distance(T,A)=distance(T,l)],[a,b]):
point(o, rhs(sys[1,1]), rhs(sys[1,2])):
point(K, rhs(sys[2,1]), rhs(sys[2,2])):
sort(Equation(circle(c1,[o,distance(o,A)],[x,y]))); # First solution
sort(Equation(circle(c2,[K,distance(K,A)],[x,y]))); # Second solution