Dynamic Multicast Delegate not Broadcasting! Help!
First thing, you are using for your line trace "LineTraceSingleByObjectType" and "ECollisionChannel::ECC_GameTraceChannel1", so did you actually create a new Object channel for this new Object type? The reason it not working is because you are using this different collision channel for your Rotate() function than your Grab() function.
To create the new object channel go to ProjectSettings->Collision->ObjectChannels and create your new channel. Set Defaults to "Block". (note that it has to be an Object Channel and NOT a TraceChannel as you are using a "LineTraceSingleByObjectType" trace).
Then you must go to your Project Folder then Config->DefaultEngine and open that file. There should be a line that says something like:
make sure you are using the correct ECC_GameTraceChannel for your Rotate() function.
Then in the objects that you want to "Rotate", you must go into their Details Panel->Collision. Set "Collision Presets" to "Custom" and "Object Type" to "NameOfYourChannel".
Then the second thing, why do you want to use an Event Dispatcher (Delegate) inside the Tick Event. Event Dispatchers (Delegates) are for things you only want to occur when something changes, putting this in the tick event voids that purpose.
You can simply do this and it will broadcast when you can "rotate":
Follow this question
Once you sign in you will be able to subscribe for any updates here