I cant do Gear and Cam Mate

So, I have this big assembly and first of all I have to do Gear mate between all gears. When I change the shift , gears should change too, but the problem is that the teeth of each gear is crossing with the teeth of the other gear. Here is the pic

This is also happen with the other gear block:

I did the gear mate and ratio with the other gears( I will show you with red circles)

So my question 1 is: I dont want the teech of the other gears to cross each other when i change the shifts, is this possible?

And question 2 is related to question1. The shifts are changing from cylindrical cams you can see on the pic. I want to make Cam Mate between the cylindrical cams and the roller you can also see. When I choose Cam mate SW told me that the faces on the cylindrical cams are not tanged each other i cant make it.

But when I open the cylindrical cam and choose tanged faces it allows me to choose all the faces

I have no idea why is this happen...

I hope somebody can help me with my questions ) Thanks a lot

SolidworksParts And Features