The issue is Butler shouldn't be in the side, let alone captain. You need someone who's place is guaranteed, which is difficult at the minute! Broad maybe, but not for me. Please not Stokes, we're asking enough of him already.
Bold is mine.
A certain Mike Brealey comes to mind from years ago. At the current moment England have only 4 spots (Broad, Stokes, Root, Archer) that are taken, with Burns and Denly continuing based on the last 2 test. Everyone else is on borrowed time. I have not seem Buttler keep much so cannot comment but I thought he was considered a better keeper than Bairstow and neither one of them is close to Foakes which Buttler has said is the standard for keepers in Sri Lanka.
If I have to choose between Buttler and Bairstow, I would go with Buttler, outside of the current Ashes Buttler has better overall score and make him the keeper and bat at 7 and drop Bairstow for Pope or some other middle order batsmen.
I looked at the last 5 test series, since Buttler was added to the test squad:
Total Score/Position Compared to Rest of the Team
Pakistan - 161/1st, Bairstow was 9th with 46 runs from 3 innings
India - 349/1st, Bairstow was 5th with 230 runs from 9 innings
Sri Lanka - 250/2nd, Ben Foakes was first, Bairstow only batted twice for a total of 125
West Indies - 178/2nd, Ben Stokes was first, Bairstow was 7th with 110 runs
Australia - 130/7th, Stokes, Burns, Root, Woakes, Denly, Bairstow ahead of him one place with 178 runs