It sounds like you are doing mostly the right things. There is a lot in this post, so allow me to simply make some recommendations.
1) In OAL, always refer to the port (rather than the interface) when sending messages. UML allows the use of the interface name, and thus OAL was designed to support that idiom. However, it brings a couple of problems. Firstly, you then cannot formalize an interface onto the same component twice. Also, the reason for ports is so that there is an “internal view” of the interface named in the vocabulary of the domain embodied by the component.
2) There is a bug in the OAL parser that will get confused if you name a port the same as an interface. Avoid this by naming ports differently from interfaces. Again, choose a name that makes sense to component/domain that is sending/receiving messages.
3) I think you are doing this, but we often recommend having a package of components with interfaces formalized but not connected. Build your configurations from component references only.
4) Nesting components is complex. Take care when choosing to configure a system this way. Unless your system truly requires component nesting, try to simpler approaches… at least while beginning to use BridgePoint.