Следующее не работает, потому что элемент передается по значению
B & insertTest(A element,A element1) {
element.test.push_back(element1); //doesn't work
}
Следующее работает, так как вы изменяете test1, который является членом этого
B & insertTest1(A element) {
test1.push_back(element);//works
};
Если вы хотите, чтобы первый работал, передайте элемент по ссылке, например так:
B & insertTest(A& element,A element1) {
element.test.push_back(element1);
}