RE: Change Security Role Business Unit
Security Roles are Hierarchical. That means that by default, when you create a Security Role in CRM, it creates that Security Role in the Root Business Unit, and that security role is available all throughout the organization for all Business Units.
If you created a Security Role at the root level, and you want to modify one of the child business unit security roles, you will not be able to do that, as they are inherited security roles.
You can however create a security role at a child level, but that will only be available at that level, and it's children, not at a higher level.
When you copy a security role, it automatically assigns the Business Unit, to the Business Unit where you are copying from.
If you are copying from childBusinessUnit1, the new copied security role will have childBusinessUnit1 as its security role.
Saying that, there is no real way for you to change the Business Unit of a Security Role. I am not sure and have never tried that, but it might be possible using the SDK, but I don't think so as this seems to be the way the system is designed.