There will be a wide variety of opinions here about how much time is enough in the various cities. Ultimately, it comes down to what you want to see and do in each one. Hate art museums? You don't need as much time in Madrid as I do. Hate modernista architecture? You don't need as much time in Barcelona as I do.
I can't imagine being satisfied with only two nights in Seville, a large city with interesting sights scattered all over. But again, it depends on your sightseeing style. Personally, I'd go with at least four nights if that much time is available (and the same for Barcelona).
Keep in mind that the more stops you add, the more time you will not have available for sightseeing, because you'll be packing up and traveling from city to city.
For what it's worth, the two most obvious omissions from your initial itinerary are Toledo (close to Madrid) and Cordoba (fairly close to Seville). But there are many other excellent possibilities.
It's unfortunate that you are flying in and out of the same city rather than using a multi-city ticket that would mean less time spent returning to Barcelona at the end of the trip. Are your family members going to be able to get from Granada to Singapore on a single ticket? It would be risky to fly Granada-Barcelona and Barcelona-Singapore on two separate tickets. The same concern applies to your return from whatever turns out to be your last stop.