Okay, so first of all, your movements are perfect. Your problems here are the checkflags and a few formatting issues.
First, always use lockall before a movement script, and releaseall before the end. It just makes everything cleaner.
Second, you don't need checkflag 0x1000 for this. The reason the script is repeating is that you don't setflag 0x1000 at the end, so it doesn't know the event is done, and even though you have a checkflag 0x82F, you haven't given the script a command for what to do if 0x1. So just deleted the checkflag 0x82F and you're good.
3. You don't need an "end" after your movement commands. Just 0xFE for each one, which you did.
4. It's best to have a space between each script section, makes it easier to view and edit.
Here's the edited script, changes in bold (deletes in italics). Look at what went wrong, then try making another, working script.