https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/blocks/containers/ContainerSteamGenerator.java#L54
You don't need al this get/setField IInventory nonesense. Just access your fields directly.
https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/blocks/containers/ContainerSteamGenerator.java#L74
I think you have a typo here.
You also need to send the initial state of the fields in Continer#addListener.
Unrelated but still issues that need fixing:
https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/blocks/BlockBase.java
You don't need this, there is already a BlockBase, it's called Block. By using this you are prohibiting yourself from extending other Block subclasses and minecraft uses quite a lot of instanceof checks. Use utility methods instead.
https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/energy/ElectricityStorage.java
Why can't you just use EnergyStorage if all your overridden methods default to super implementation anyway?
https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/util/IHasModel.java
IHasModel is stupid cargo-cult programming. All items need models, no exceptions, and nothing about model registration requires access to private/protected data. Just register your models directly in the ModelRegistryEvent.
https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/proxy/ClientProxy.java#L9
This makes zero sense. Your client proxy can't extend your server proxy. Proxies exist to separate sided-only code. A server proxy either provides noop implementations for client-only methods or runs code that would crash the client. Extending it like this will crash your client if you at one time will use the server proxy to do something server relater.
https://github.com/Esrome/science-mod/blob/master/1.12.2/src/main/java/esrome/scienceMod/init/ModBlocks.java#L20
Don't ever instantinate your stuff in static initializers. Static initializers remove your ability to control loading order and may cause all sorts of issues. Instantinate your stuff directly in the appropriate registry events.