I came home tonight to find him asleep in my room. He got up and made a snack and then went back to my bed, stripping to his pants, like it was normal. We literally had a conversation on Monday morning about how that wasn't fair on me and he agreed to go back to the sofa. Last night I was simply too tired to set the boundaries again so I just climbed in, wrapped myself up and went to sleep.
Change the door handle to one with a lock.
You’re actually making things worse in a way - because you’re talking the talk (“you must stay on sofa”) but then you’re letting him get away with breaking your boundaries.
You might as well put up a flashing green light for him to do whatever he wants.
The two important things about boundaries 1. they’re for you (they’re not to manipulate someone else), 2. you have to stick to them.
Think of him as a puppy dog who keeps pi**ing on the carpet. Would you give them a treat?