That’s quite a lot of logic to put in a single post, so ill try and give you a start.
In your actors tick, have a bool such as bIsBeingPlaced. Then a branch off it to where if its true, you update the actors location to be the mouses.
To keep it in the play field, and not go through walls, what I would do is create a nav mesh for your level. Normally, this is used for AI to navigate and see where it can walk, but what you can also use it for is during the updates to the actors location, constrain it to always be inside this mesh, but relative to the mouse.
If you look at the SillyGeo content example, the creator uses a similar idea for spawning his enemies. He uses the nav mesh as a “bounds” for where characters can spawn, so I recommend checking out that content example as well.
OnMouseClick would be where you could change that bool from being placed, to not.