Do I need to call Destory method to remove components from Actor when Destory method to remove Actor?

Actors arent destroyed immediatly. They are marked as to be garbage collected and over time the memory will be freed.
The only time you need to write a manual destructor is when you

use objects that inherit from uobject or actors created by NewObject in c++.

Actors and components should clean memory after their own destruction.

Add a print string before the actor is destroyed and see if it even fires the node. Perhaps the bool next to the controlling branch has a wrong value.