Interesting one, Before I get to the Powershell just a quick overview
CLR is a run time that is used by many programming languages and what language you chose
does not matter as long as the compiler you use targets the CLR
Besides Microsoft has created several language compilers that target the runtime, C++/CLI, C#, F# and so on
Process of Compiling source code to managed Modules
- Source code written in a language
- Gets compiled by its respective
compiler (That targets CLR)
- You get a Managed Module(+metadata)
which is Standard Windows portable executable 32bit (PE32) or (PE64)
64 bits

Combining Modules to Assemblies
The compiler then takes this Managed Module (IL+Metadata) and resource file and converts them to an Assembly

It is this Assembly(EXE/DLL) that the CLR makes use of for execution
As far as I know, Powershell, C#, VB.NET and all CLR programming
languages all compile down to the Common Intermediate Language before
they are actually run by the Common Language Runtime.
If this is the case, would it therefore be theoretically possible to
compile my Powershell 5 class code to CIL,
With Powershell it works a bit different although it is based on the .NET Framework. It does not follow the same procedure as we saw in the previous example.
When you attempt to run a .ps1 script (Ver:3 and above)
It would first compile the parse tree to a LINQ
Which inturn gets converted to a byte code (CIL) which is then Intepreted (Just-In-Time)
Even at this stage this IL cannot be converted to Assemblies/DLLs/ in a reasonably straight forward manner(Not as far as I know).
But as a work around you can consider converting your Powershell script as an executable (PS2EXE) although it is not a very consistent approach.
References:
Link to PS2EXE :https://gallery.technet.microsoft.com/PS2EXE-Convert-PowerShell-9e4e07f1
Reference books : CLR via C#, Fourth Edition by Jeffrey Richter
https://www.safaribooksonline.com/library/view/clr-via-c/9780735668737/
Jason Shirk's answer: Does PowerShell compile scripts?