Getting an access violation while multi-threading and I don't know why

It looks like you’re adding the address of a local stack variable to your array each time:

_listToAppend.Add(&CustomMeshTriangle);

That array is just going to be filled with bogus pointers when you’re done (although it doesn’t look like you’re actually using it?).

I’d consider changing that to be a value type. Also, accessing UCustomMeshComponent* m_MeshComponentPtr on your thread is not advisable unless you have guaranteed its lifetime on the main thread, along with thread-safe access.

Hope that helps.