No, it doesn’t Emplacing versus adding a simple scalar value like a pointer makes no difference.
Perhaps your TArray was not a UPROPERTY()? If so, the Unreal reflection system won’t know what to do with it, and you can run into ownership problems.
No, it doesn’t cause a crash, unless the object that contains the ActorArray is in itself invalid.
HOWEVER, removing items from an array that you iterate over, will invalidate the iterator, so don’t do that. Using an invalid iterator may or may not cause later undefined behavior, which may or may not lead to a crash.
In general, I would highly suggest stepping through your crashing code in the debugger. Knowing for sure why something crashes, is 100x more helpful than just guessing.