This is pretty simple stuff. If you use a Canvas and bind it to a list of items (x, y, rotation, z order, data source etc), then use ItemTemplates to style the individual control styles, then serialize the whole lot for saving/loading.
Edit: this post might give you some pointers Is it possible to bind a Canvas's Children property in XAML?