There's no need to recreate the entire array. Assuming you have 4 vertices per tile you'll have something like
std::vector<sf::vertex> verts(800);
To update the transparency of a single tile do
verts[8].color = sf::Color::Transparent;
verts[9].color = sf::Color::Transparent;
verts[10].color = sf::Color::Transparent;
verts[11].color = sf::Color::Transparent;
You can easily find out your starting index by looking at the grid index of the tile you want to modify and multiplying it by 4. It can even be simplified to
for(auto i = gridIndex; i < gridIndex + 4; ++i)
{
verts[i].color = newColour;
}