The only players who get to stay in the team as of now are Fakhar, Imam, Babar, Shaheen, and Haris Rauf.
Rauf makes the cut only because he bowled with some sense in the last ODI, and wasn't a complete scattergun.
The bulk of the changes need to come in the middle order.
We can start by removing Asif for Haider.
Rizwan has been pretty inconsistent in ODIs, and he's averaging less than Sarfaraz even, with an average of 29.6. I'd keep him for now, but Sarfaraz should replace Danish Aziz.
Now comes the case with Shadab. I think he needs to be dropped for his own good, and he should be sent to the NHPC to train and perhaps build upon his skillset and his control in the bowling. Unfortunately, I wouldn't be playing Usman Qadir either. Shamsi and Shadab, both wristspinners, got a hammering in the series, so it would be better to go with Nawaz, and the added bonus he provides with his batting.
Hasnain should get chances in the T20s, but I think he needs to work on his endurance and stamina for the ODI game. He should get replaced with Hasan Ali.
The final team I would play looks like this:
Fakhar Zaman
Imam-ul-Haq
Babar Azam (c)
Mohammad Rizwan
Sarfaraz Ahmed
Haider Ali
Mohammad Nawaz
Faheem Ashraf
Hasan Ali
Shaheen Shah Afridi
Haris Rauf
The only issue with this is the lack of a 6th bowling option, which is why Rizwan could miss out for Sarfaraz to accomodate either Shadab Khan or Danish Aziz.