B4 was completely pointless, and his presence cheapened whatever pathos could have been earned from Data's (pointless) sacrifice.
Shinzon's existence makes no sense at all. Once the Romulans decided not to go through with their (stupid) plan to replace Picard, they simply... shuttle him off to Remus? Huh?? It occurred to no one that the existence of a clone of the flagship's captain might cause some kind of diplomatic incident later? As if the Romulans are above summarily killing people! The second the plan was scrapped, Shinzon should have been put through an incinerator, or dematerialized and then scattered into space.
Shinzon could have been an interesting villain without
any connection to Picard, but then they would have had to think through his motivations instead of giving him a cheap "revenge" shtick. There was potential in the situation: the Romulan government suddenly in shambles, Reman rebels running amok. Federation leaders, after what they'd been through with the Dominion, would likely want to turn the situation to their advantage. Picard would be driven to do what's right, regardless of politics. The question is, would freed Remans be a greater threat to the Federation than the Romulans themselves? Should the Federation stand by while a Reman uprising exacts vengeance against their Romulan masters? Can the Federation afford to have that kind of chaos in their backyard? There was the potential for a lot of moral ambiguity here with no easy answers, and instead they shied away and went for the cheap and simple. I had high hopes for a Romulan-centric movie, though I was always very lukewarm to the whole clone concept.
The space battles are pretty exciting. That's the only part I could say I really enjoyed, but then you can get a good space battle in lots of places, and it's no excuse for having a shitty story.