You have to mark the struct as Moveable. (Vector requires its elements to be moveable. Array doesn't.)
struct Phase : Moveable<Phase> // <--
{
int id;
double split;
Vector<int> signal_groups;
int min_green;
int all_red;
int amber;
int skip;
void Xmlize(XmlIO& xml);
};