What I find is that I need nice simple shapes at the start of wireframing. This is great for getting client feedback etc.

But, later on in the project, the client wants to see an interactive flow with closer to production quality assets. AND, we still need to be able to rapidly move them around etc without getting Code or anyone else involved.

So for me, what would be great is the ability to swap an asset for another. e.g. Swap a Rectangle for an Image asset.

What I currently have to do is make my own images for the assets, and have them as components, so I can quickly replace the images with the nicer looking images.

I am not sure how this would work. It sound like it's a very specific problem that requires a very specific solution. I think your solution with components is a good way to go. I would create a screen asset with named groups (i.e. logo, banner, etc) and use simple widgets (i.e. rectangle, placeholder) as their content. Then later those simple widgets can be replaced with images.