Those generally indicate either (1) a *PGM, *MODULE or *SRVPGM object or (2) a source member maintained with PDM.
For a *PGM object, CLE would be a program that had an ILE C program entry procedure. For *MODULE, the module source was ILE C. For *SRVPGM, it seems to reflect just the first module bound in. And CLP indicates OPM CL. The value is the object Extended Attribute, set by the system when the object is created. The value comes from whatever compiler (or other creation facility) created the object.
For a source member, it is simply a convention that is used by PDM (and SEU) to determine which editor rules will be applied and compiler will be called. You can actually put any sequence of letters you choose. It’s just that things are easier for PDM (and SEU) to do things automatically if you mark members with the pre-defined attributes.
Also, I assume that the question is really about “CLLE” rather than “CLE”. The difference between CLLE and CLP is that CLLE indicates ILE CL while CLP indicates OPM CL. (Note that there may also be “CL” members.)
I would put effort into converting any CLLE objects to CLP. There are few reasons to use OPM CL in the past decade. A program containing TFRCTL for example <i>must</i> be OPM CL. Issues relating to RCLRSC and various OVRxxx commands often require some analysis and possible reworking. A few other considerations apply.