Your post originally identifies that Hafeez has been redeeming himself in the last 2 years, while no mention of Malik. So to clarify things, here are the performances of the Pak batsmen:
https://imgur.com/gallery/qby8Z
(I apologise for links, I don't have access to a computer atm)
From here we can see that Malik has outshone Hafeez in every way possible. Average of 58 with a SR of 100 in the last 2 years is world class. Hafeez is no way near that. So much for all this redemption business. Remember we played NZ, Eng, WI, AUS all within the past 2 years and these are 'good sides', mostly.
However, I'm not a pro-x player or anti-y player. I want what's best for Pakistan cricket. Since we're playing in England, and only 'recent form' matters (within past 2 years), the only time we can use is the recent 2016 ODI series, which is seem below:
https://imgur.com/gallery/IVoF2
Hafeez only played one innings, scored 11. I believe he got injured or something along them lines. Malik had an average of 30, SR 83, pretty average to be frank.
Back to the original statement: Malik is a better player than Hafeez and it's crazy that you think otherwise. I like Hafeez in that he can get stuck in and score big but be doesn't do that often enough. Malik trumps Hafeez with his attacking flair and modern day cricket despite playing lower down the order. And like I said, if you're hoping Hafeez will do well based off current form in Pak Cup then you have to say the same regarding Malik in international matches.