Let me understand this: On a Customer you want a field called something like "Purchased Product Classes". In this field the user or a backend process will multi-select the Classes of all the items the customer has previously purchased.
That can be done or course.
Can I suggest a slightly different idea? How about using a new Sublist based on a search of the purchased classes. It could sit next to that native sublist you mentioned.
The other advantage of this approach is that you can then also include $ amounts and Quantities listed by Class. Something like this.