In general, I think it looks good, and it's usually a good idea to create viewmodels for your domain objects.
I haven't looked at every single line of code, but one thing that caught my attention was the constructors of OrganisationViewModel. I'd rewrite it using:
public OrganisationViewModel() : this(new Organisation()) { }
public OrganisationViewModel(Organisation o)
{
Organisation = o;
InitCollections();
}
This removes some duplicate code, as you don't have to call InitCollections()
in both constructors. Of course, this is just a minor detail, and has nothing to do with the general idea.