Hi Fintan,
With all due respect to the way you preffer to do your modelling, I would like to make the following comments:
According to the amigos (the trio that contributed most to the creation of UML), collaboration diagrams should strictly show interactions between objects (that is, between instances of classes). This should not be taken simply as dogma, but as something that makes a lot of sense: look at an interaction diagram, and you will readily see that what is interacting is not the "salesperson" class, or the "customer" class, but particular instances of these classes. For instance, customer "A" (say, Charlie), interacts with salesperson "B" (say, Nancy).
How, then, can you create a collaboration diagram without having previously identified the classes of which these objects are instances of?
Let me suggest that you do a use case model first, and derive your classes from the scenarios in these use cases. The best way to develop scenarios is with event lists, as the following:
1. customer phones salesperson
2. customer inquires about product
[and so forth...]
The nouns in these sentences are pretty good candidates for classes, which you will better identify once you have a more or less complete use case model.
Once you have your use cases, you can do either a sequence diagram or a collaboration diagram of your scenarios, showing the interactions in your event lists. But why do both collaboration AND sequence diagrams? I would only use one or the other, but doing both is (IMHO) severely redundant: you will have two sets of diagrams depcting the same interactions, and that means that when you have to correct one you have to correct the other one as well.
I preffer to do sequences in most cases, because in sequences you can use either classes or objects, and they are a great means of discovering the classes and their respective attributes and operations. Of course, there are many circumstances where collaborations work great, and there is also a matter of prefference.
The order in which you do your diagrams will greatly help in solving the issues you have raised, and there have been a couple of threads in the UML forum that might be of interest to you.
I hope you find this helpful.
Jaime