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.