I find the best way to join geometry is to pick join and then start selecting, 1 by 1 (in order), the geometry you want to join. This way, when it comes to overlapping entities or gaps, a warning will pop up saying "the distance between these 2 entities is x.xxxxx". This is where your problems are coming from, I think. You'll need to make sure they are all trimmed up nicely and you wont get gaps/overlaps in the surface(s). If you select all the entities you want to join and then click the join button, this warning doesn't pop up. I also suggest you rebuild the joined curve afterward (with the rebuild command) to get a smoother/simpler (as far as control points go) version of the curve and will have less problems with the surfaces built off of them later on down the road.
HTH
You can't live forever, but can you be dead forever.....