Changed my mind. You just can't keep out Kamran over these performances. Use him until the world cups are done, then retire him. Maqsood isn't dominating as he should, one great performance, but it's not at the same level.
In ODIs
1. Fakhar
2. Kamran
3. Babar
4. Haris
5. Sarfraz
6. Malik
7. Talat
8. Faheem
9. Shadab
10. Hasan
11. Amir
In T20s, the same but drop Haris, move everyone else one up, and include Shinwari. Shinwari can come in for Faheem if indeed he proves more worth than him in the ODI format.
I'd love for Talat to be batting higher up than 7 but not sure it will be realistically possible. Malik won't bat at 7 I don't think. Sarfraz at 7 is wasted, he needs to be up the order. Both Malik and Sarfraz don't have the power game for 7. Talat does. Hopefully he'll move up the order gradually with time, but someone has to play 7, and he's probably the best option for that atm. Talat looks like he could do a good job too, seems the right mold for a finisher.
Dunno who keeps. Kamran could keep if he's better than before, otherwise Sarfraz. Kamran may be poor in the field, but wonder if Sarfraz is any good either given he's put on weight. Either way whatever's best, though I'd lean on Sarfraz keeping (but both are good enough to make it bat alone, especially Sarfraz). I'd make it clear that Kamran has to work very hard on his fielding if in the squad/team as well as sufficient diet and fitness plans enforced and adhered to if he's to be with the team.