For Join to join two surfaces the adjacent edges must be within the absolute tolerance distance of each other. Several of your pairs of adjacent edges are further apart.
You can try using MatchSrf with Position option. You will probably have to use the Refine match option. which will add more control points to your surfaces which is not desirable.
You can also use JoinEdge which will ignore the tolerance and force the surfaces to “join”. The edges of the individual surfaces will not be modified. Using JoinEdge can cause problems if the surfaces are used later, and should usually be avoided.
The best solution to your problem is to rebuild the model using surfaces which have control point structures which align between adjacent surfaces.