Solution is simple :
not all code path return value
You don't return anything in your method.
Look at the signature of the method :
public static vector operator +(vector v1, vector v2)
You have to return a vector from the method. Thus :
public static vector operator +(vector v1, vector v2)
{
return new vector(v1.X * v2.Y + v2.X * v1.Y, v1.Y * v2.Y);
}
I suggest you get a good book on C# basis ; this is a fundamental field here that you seem to ignore.
Good luck.