In part, the cylinder solids of your piston are just for show. They do not really contribute to the mechanism, but they do complicate the model. I'd suggest that you remove them until you have the simulation working properly.