I have been doing the same overtime for several years, my company now want to stop me from doing this and let other people do it who earn less money. Can they do this?
Yes they can do this. I used to work at a company where some employees were purposefully doing unnecessary overtime work as a means to make more money. The company took notice of this and required any overtime work to be first approved by a manager. The extra hours that these employees were working was not worth the extra salary that the company had to pay them. This is likely the reason why your company is allowing your coworkers that are currently making less money to work overtime. It is a necessary overtime and they want to pay the least amount possible for it.
You haven't specified a location nor any relevant information from your contract, so we can't say if they can or can't. But in most cases, yes they can, or rather you can't just work overtime unless specifically told to work overtime. In the vast majority of situations whether or not to work overtime is not the employee's decision.
Think about it, does it make sense for someone to mow their neighbour's lawn and demand payment for it? No, so then why should it be normal to do work outside your specified hours and expect to get compensated? If nobody asks you to work more than your contractually obligated hours there's really no reason to expect that it's allowed or wanted.
No they can't. (if you live in the Netherlands.)
If you work more hours then what's in your contract for a prolongued time, then after 13 weeks there's a legal presumption that your actual worktime is longer then what's in your contract and the employer has to schedule you for the average of hours you made in the 13 weeks.
Something that is very common in the Netherlands is that in the Care industry a lot of women have 24 hour contracts, 3 days/week. What often arises is staff shortage and you see people on a 24 hour contract working 32 or even 40 hours for years on end.
To protect those kind of employees from for instance punishment by employer (I will cut your hours for ....) but also for unemployment benefits. (If you work 40 hours for years but only 24 in your contract, you want to make sure unemployment benefits are calculated on 40 hours work.)
I made this answer because you don't specify where you live, and the law is wildly different from country to country.
So what you have to do is: consult a lawyer.
It's not "your overtime" it is work required by the company for which someone might need to do overtime to complete. So yes, they can allocate that work to whomever they want.
But more importantly you need to pay attention to why this is happening.
I've seen toxic management use overtime as a bonus for toxic behaviour (like spying on staff on behalf of management and being rewarded with overtime). I've also seen toxic staff hold on to overtime and "hog it" not letting other staff have a chance of getting it for a bit of extra money. When overtime is involved a lot of corruption can happen.
Your manager could be avoiding potential corruption allegations by sharing it around rather than let you have all of it.
As the other answers, yes they can.
But, what happens if the situation arises where that work is not getting completed due to the lack of experience and they want you to come back to do overtime? Obviously "overtime" is not compulsory...
Perhaps then you get to negociate, saying "I'm used to having more free time now..., so how are you going to motivate me to come back to overtime" ?