From what I recall, the major changes would involve adding conditional compilation to only allow geometry shaders on DirectX (It’s been a while since I’ve done C# so I can’t recall if Conditional Compilation is possible), and then to load them into the SharpDX Device.
Since Geometry shaders are just another stage in the pipeline, the method for using them is pretty much the same as any other shader, which involves binding them to the device, setting the constant buffers and then invoking a draw call.
Additionally, for reference, here’s how I compiled them, since the content processor doesn’t (didn’t?) allow me to add the GS as part of a pass in a technique.
Since it is not possible to get mojoshader to translate geometry shaders, it might be interesting to look into a different translation api, such as using SPIR-V as the backend. This would be beneficial since glslangValidator can already take HLSL as an input, and there are spirv tools to emit GLSL, HLSL, MSL, etc. Also, this would enable not only Geometry shaders, but also tessellation shaders, and (I can’t recall if this is already enabled in MonoGame) compute shaders.
In any case, this is just my opinion on how you could move forward with Geometry shaders in Monogame, and I apologize for not being of more use since I haven’t worked with Monogame in a while.