Внутри оператора вы создали объект типа Matrix с пустым вектором
Matrix sum;
Так что вы не можете использовать оператор индекса в выражении
sum.a[i][j]
Вы можете после создания объекта sum
установите соответствующие размеры для вектора.
Например
Matrix sum;
sum.a.assign( a.size(), std::vector<int>( a[0].size() ) );
Обратите внимание на то, что гораздо лучше объявить оператор следующим образом
Matrix operator+( const Matrix &m ) const;
, поскольку ни один из операндов оператора не изменяется в операторе.