A Package in UML is just like a folder. It's a mechanism to help you organise your model. Communication is between objects. Objects that communicate with one another can of course be instantiated from classes that exist in different packages.
Typically a model will have many packages but the classes in these packages should adhere to some principles. Here's a useful white-paper by Robert Martin that outlines the principles -
http://www.objectmentor.com/resources/a ... larity.pdf
As far as code gen in Rhapsody goes, it's best to think of a package as a namespace. It will be global space unless you actually tick the property to force the package name to be a namespace.
IMO, namespacing should be used extensively.
I know I mentioned it before but a lack of training will make it hard to get a handle on this aspect of modeling. There are good ways to organise your model and if you hit on the good way then you'll have a significantly more productive and enjoyable time. Generally those who try Rhapsody and don't like it, failed to hit on the right model organisation.
I realise I haven't answered your specific questions. Perhaps a look at the installed samples might help.