The MD5 hash is generated with each transaction. It's created on the fly using the payment page id, a randomized number, the UTC time stamp, the amount, the currency code, and the Transaction Key.
When you submit a transaction to payeezy, you send the payment page id, the randomized number you are using, your timestamp, the amount, and the currency code. You also send your MD5 hash. Payeezy looks at what you sent and varies your timestamp is within 15 minutes of UTC. If it is, it takes your values and creates an MD5 hash. If the two hashes do not match, the one you created and the one Payeezy created, it rejects the transaction attempt.
What's highly unusual with your issue is that you are getting to Payeezy's secure payment form. The MD5 hash is tested BEFORE the cardholder is allowed access to the secure payment form. If the MD5 hash is incorrect, you should never get to the point you can enter a credit card number.
Could you send me a link to your website so I can look at what is being sent to Payeezy?