In SystemC scheme, channels are the workhorses for holding and transmitting data, and an interface is a "window" into a channel that describes the set of operations, or a subset thereof, that the channel provides. Ports are proxy objects that facilitate access to channels through interfaces.
port and export are both "windows" of a certain channel, they both forward interface methods to the channel to which they are bound.
The right way to use port or export is like this: (1) If a module is to call a member function belonging to a channel that is outside the module itself, that call should be made by using an interface method call through a port of the module; (2) If a module is to call a member function belonging to a channel instance within a child module, that call should be made through an export of the child module;
Another way to think about port and export is like this: (1) Port is a pointer to a channel outside of the module itself and the child modules under it; (2) Export is a pointer to a channel inside of the module itself or the child modules under it;