Cross-posting causes the posts to be de-duplicated in most clients, which can mean that whichever post takes off, cannibalizes the votes from the others, meaning discovery suffers for the communities where the post didn't take off.
To work around this, I cross-post things that fit in many communities with a time delay of at least three hours.
I post first to the smallest community, which allows that post to stand on its own, as much as it can, bringing users to that community. With few subs it'll mostly get seen by people browsing all, rather than subscribers. Which is good, that's how small communities get found by new subscribers.
Then, once the first post to the actual community has stopped getting votes (which happens quicker the smaller the community) I cross post to the next biggest community. This consequent post often gets more attention, but it now links to the small community, which will be found by some fraction of users seeing the cross-post.
You won't annoy people too much doing this, as posts to small new communities don't get seen by that many people before they essentially disappear from all. But as the community grows and votecounts increase, posts will gain more sustaining power as they sink slower the more votes they get.
Eventually the subcount will get big enough that posts will stay fairly high in all for a good while due to subscribers upvoting them. At this point, you might start simultaneously posting to other communities.
I also like to leave comments of posts in big communities, that could be cross-posted to a small community I know. I did this a lot with [email protected] so people posting and browsing to general gaming communities could find the new game community in the comments of relevant posts, and I'm fairly sure that's why it is so active.