Why does this Jest assertion fail for one wrapper, but pass for an identical one

I am unit testing a Vue component, and had confirmed all my tests as working. I then moved the logic for creating the wrapper into a BeforeEach() function to avoid repeating it.

Weirdly this works for every single test apart from one.

The affected test runs absolutely fine when the wrapper is defined within the test:

let wrapper;
const localVue = createLocalVue();

describe('tests with data that passes validation', () => {

    beforeEach(() => {
        wrapper = mount(registrationForm,{localVue, data(){return {'formValues': validFormData}}});
    })

    const validFormData = {
        'name':'Test',
        'email':'test@test.com',
        'password':'testtest',
        'password_confirm':'testtest'
    };

    //** WORKING VERSION**//

    test('WORKING valid data is submitted', async () => {
        let wrapper = mount(registrationForm,{localVue, data(){return {'formValues': validFormData}}});
        let mockSubmitHandler = jest.fn();
        wrapper.vm.submitHandler = mockSubmitHandler;

        await wrapper.find('form').trigger('submit');
        await flushPromises();

        expect(mockSubmitHandler).toHaveBeenCalled();
    });


    //**NOT WORKING VERSION **/
    test('NOT WORKING valid data is submitted', async () => {
        let mockSubmitHandler = jest.fn();
        wrapper.vm.submitHandler = mockSubmitHandler;

        await wrapper.find('form').trigger('submit');
        await flushPromises();

        expect(mockSubmitHandler).toHaveBeenCalled();
    });

    //...
    // HOWEVER all other tests work as expected in this block using the wrapper reset in the beforeEach
});

I assumed this was something not being reset after another test - but the test fails even when run on it's own (without any undefined errors etc). Even more strangely, I added an assertion that the two wrappers were identical which passed - despite the locally defined wrapper working and the one from the beforeEach failing:

test('NOT WORKING valid data is submitted', async () => {
        
        let localWrapper = mount(registrationForm,{localVue, data(){return {'formValues': validFormData}}});

        expect(localWrapper).toEqual(wrapper); //Passes?!
        //...
    });

I've read the documentation for the BeforeEach but I can't see where I am going wrong in this case?