PictureBox p = (PictureBox)sender;
PictureBox pb = new PictureBox();
pb.Image = p.Image;
p.Parent.Controls.Add(pb);
pb.Location = new Point(100,100);
pb.Size = p.Size;
[1] Assuming you want to the new PictureBox whose Properties you copy from the source PictureBox to appear at the location 100,100 in the co-ordinate space in which the source PictureBox is located: you need to add the new PictureBox to the Control Collection of the Parent Control in which the source PictureBox exists. After you do that, you can say that both the source and new PictureBoxes have the same Parent.
Setting the Parent Property of a Control to a Container Control has the same effect as using the 'Add method of a Container Control's 'Controls Property (which is a ControlCollection object).
If you are creating multiple PictureBoxes at run-time, I'd suggest making a UserControl that you could use as a "base:" that way, all the visual-appearance properties would be automatically identical every time you created a new one. Or, you could make a Custom Control that inherited from PictureBox.
If you use such a "factory method," and keep track of the last Control created, then, if you wish, you can automatically position the next one created relative to where the previously created one is.
Transparency in Windows Forms is a tricky business, and it is inherently limited; if you really want to work with transparency, I suggest WPF.