They poop a lot at night, so if you get them to lay in the nest boxes and they also sleep in there, you will get poopy eggs. That is the main reason for them to not sleep in the nest boxes.
The roosts need to be higher than the nest boxes. They normally want to sleep in the highest place possible. If the roosts are higher than the nest boxes and they still want to sleep in the nest boxes, every night after they have settled down and it is too dark for them to see to move back to the nest boxes, take them out of the nest box and set them on the roost. Use as little light as possible. They should get the message in a few days or maybe a week.
If they are in the habit of laying in a spot on the floor, it may be hard to get them to lay in the nest boxes. I made my nest boxes so I can lock a chicken in there if I want to. When I catch one laying in the floor, I lock her in a nest box until she lays the egg. This usually only takes about a half hour, but I had one Speckled Sussex that I had to lock in there a few hours one day, then a couple of hours the next day before she would lay the egg. She did finally learn. That's the only way I've tried.
Hope this helps. Good luck!
Editted to add: If they are scratchng the fake eggs out, do you need to raise the lip on your nest box so they don't scratch them out? I had to make mine about 5" high to get them to stop scratching out the nesting material and fake eggs.