Definitely wise to fly in a few days early to enjoy Barcelona and to make sure no travel SNAFUs pop up.
This May, we chose the Kimpton Vividora hotel in the Gothic Quarter. A good location close enough to a ton of things.
Regarding being near the airport or the cruise port, I agree with others that neither is optimal. The cruise port is super easy to get to by an assortment of options - from walking to public trans to cabs. And not particularly far from the heart of the city. When we were checking out to fly home, tons of folks were in the lobby of the hotel having the concierge arrange transportation to the cruise port, so it's one of those things that should be easy.
"Musts" are pretty individual, and places like Rome and Florence are jam packed with multiple-days worth of exploring. Museums, history, architecture, food, city "life", and more, so think about how you want to spend your precious port hours and drill down there. May should be nice weather temps still, but trending warm.
One thing I do think is a good idea would be to maximize your Barcelona time by extending more than just a couple days. For us, the flight/travel time are the worst part of trips to Europe, so maximizing as much as possible the time we're on the ground there is key. With Barcelona being where you can most easily pad your time in Europe, that's where I'd consider adding days (and day trips too).