How to change the page header without causing a pagebreak?

set page() always starts a new page. However, you can find out in the header what page you are on and whether a chapter starts there. If you want to e.g. not show headers on the page where a chapter begins, the package may be right for you:

PS: be sure to check out the question guidelines, maybe you can reformulate your post title as a question.