I'm assuming your setup is similar to the following(however if it is not, you should be able to follow the following explanation)
If you want to display place-holder sprites (the faded-out sprites you were talking about) then you need either a list or an array to store the sprites positions, and draw them with the alpha value of your choice.
Add some rects to the chart as well. Make sure their width,height,and position are correct or else you might end up with some weird results in terms of dragging sprites onto the chart.
The logic behind dragging sprites is pretty simple - based on the your description. Let us assume that the 3 circles on the grey panel are sprites. The mouse needs to be able to know when it is hovering over these sprites(or buttons - however you want to think about them). I would recommend making a class that handles the dragging and placing of the 3 sprites for functionality.
Within this class you should define a Rect(meaning Rectangle) for these buttons. This class should also know when the mouse is on the image(meaning if the mouse is within the rect you have created for that image). If the mouse is on the image and the mouse is being clicked (with the left mouse button for example) then you should create a duplicate image of the sprite that has just been clicked. If the sprite is not within any of the Rects on the chart and the mouse button is released you should get rid of the texture. If the mouse is released and the mouse is within on of the rects on the chart then you should "snap" the sprites position to the rects position(maybe even scale the sprite based on the rects position if you want to be safe).
MouseState
usingMouse.GetState()
in yourUpdate()
method and then determine if the mouse buttons were clicked. \$\endgroup\$