Should I prepare new homework exercises each year, 20% of the final grade is homework?
The main dilemma is that the homework is part of the grades, therefore you should prepare a new one each semester. 

I solved this for my programming course in a radical way (after struggling with a similar issue for a few years): I made all homework optional, and only the exams count. I make it very clear that the students will fail if they don't do the exercises (and some prove me right each year which is motivating for the others). Students are getting feedback on their submissions and they can even submit revisions. I'm using the homework results (anonymously) for the course where I'm discussing common errors and best practices. 

What I did instead is to build dependencies in our course management website (in our case Moodle based): The students only get access to the next chapters if they at least submit the mandatory (minimum) exercises. Yes, they can submit crap, but it's hard to evaluate each submission in very little time so I'm willing to accept this loophole, and at least up until now, students haven't used this option.

The second thing I do is have three live programming sessions where the students have to solve little tasks (in general quite simple exercises) without an internet connection. You have to pass all three of them. Since this happens during the semester, they recieve a feedback about their progress quite early. Each test can be repeated once during the semester. 

The combination of thoses measures results in high participation rates and people have no more motivation to copy solutions since they don't have any benefit from it.