You are mapping in the wrong direction. For example, let's take the first letter. The V should become T, but why?
The answer is because the spot that V occupies in the alphabet is the spot that T normally occupies. Instead, you are looking for the spot that V would occupy in the alphabet, and substituting in that letter, which is I.
In short, your current program is a scrambler and not a de-scrambler, and so you're just scrambling the message a second time. For example, if I use the same alphabet but instead supply the original message, the result I get is identical to the scrambled message you have provided:
Please input the scrambled alphabet in order: 'XQHAJDENKLTCBZGUYFWVMIPSOR'
Now input your scrambled message: 'THIS IS MY 1ST SECRET MESSAGE!'
VNKW KW BO 1WV WJHFJV BJWWXEJ!
This is the problem line:
decrypt[num] = ord(each_letter)
Instead, you need to build the map in the opposite direction:
decrypt[ord(each_letter) - 65] = num + 65
Now the program works:
Please input the scrambled alphabet in order: 'XQHAJDENKLTCBZGUYFWVMIPSOR'
Now input your scrambled message: 'VNKW KW BO 1WV WJHFJV BJWWXEJ!'
THIS IS MY 1ST SECRET MESSAGE!