The purpose of the ejector spring on the 870 is to ensure the ejector moves into the right place to hit the base of the extracted shell. How much force the shell hits the ejector with (and how hard it gets thrown out) depends on how forcefully YOU work the action.
First, make sure you put things back together correctly. (sounds like a no brainer but you'd be surprised how often it is the culprit in malfunctions after cleaning)
Second, make sure there is nothing (foreign matter) restricting movement.
Then, operate the action consistently. See if you still have the problem.
It COULD be a weak spring, but I doubt it. IT could be your EXTRACTOR (or its spring) IT is possible for an extractor to pull the round out of the chamber, but not hold it securely enough for the ejector to kick it out of the action. Same drill, check its put together right, check there is nothing hindering movement.
IF it is weak springs, the spring(s) are cheap, BUT while the extractor spring is a simple replacement, the ejector/ spring has a rivet, and replacement should be done by a gunsmith.
My best guess, based on what you describe is a problem with the EXTRACTOR, letting go of the shell as it hits the ejector, so the empty does not pivot out of the receiver properly. Can't say for sure, long distance, but that would be my guess.