There are no short answer, so I'll not even try. I will however point you to this article
WPF Diagram Designer: Part 1[
^]
it's the first in a series of 4, I read this and played around with the code when I started learning WPF, great article. It will show you how you can implement grouping and I'm guessing it also can show you a lot of other features you wanna implement.