Help with AppleScript moving email messages
It's better if you capture a reference to every message in a variable, instead of getting the reference every time you loop.

tell application "Mail"
    set theWorkInbox to mailbox "Work Inbox" of account "Work"
    set TargetInbox to mailbox "Work Holding Bay" of account "Work"

    -- CAPTURE REFERENCE TO EVERY MESSAGE OF MAILBOX IN A VARIABLE
    set EveryMessage to every message of TargetInbox

    repeat with currentWorkMessage in EveryMessage
        set mailbox of currentWorkMessage to theWorkInbox
    end repeat

end tell