Only public user defined types defined in public object modules can be used as parameters or return types for public procedures of class modules or as fields of public user defined types
This error has the following cause and solution:
You attempted to use a public user defined type as a parameter or return type for a public procedure of a class module, or as a field of a public user defined type. Only public user defined types that are defined in a public object module can be used in this manner.