I see that you found your error (a+b) instead of (a*b).
By specifying the values for the circumference and the area of an ellipse, the dimensions of the half axes a and b are clearly defined (except for the order of a>b or a<b).
And if the specifications correspond to those of a circle, then the solution is precisely this circle.
However, this has nothing to do with your original question about the unit mismatch error 😉
Here a demonstration using the 'exact' formula with the elliptic integral.
Input of the function "getAxis" are area and perimeter of the ellipse, output are the lengths of the two half axis a and b.
If the input corresponds to the values of a circle, the result is exactly that circle (a=b).

A circle is the ellipse with the least perimeter by a given area. So if you demand a perimeter too small, the solutions will be non-real.
In the example below the perimeter would have to be at least 35.449 inches to get real solutions.

A solve block does not return non-real solutions if the guess values are real.
To get the non-real solutions you would have to provide non-real guesses:

As you see we also get tiny imaginary parts in the real solutions as well. This is because of numerical inaccuracies, presumable because of the numerical evaluation of the integral, I guess.