You need a blockstate json and a block model json look into the minecraft jar to see the file structure. And you only need to call ModelLoader once for blocks aswell as items
Since the players inventory is synced between client and server the client has the most updated data most of the time. It accesses the players inventory and displays the ItemStacks from that.
First thing is first you do not need an instance of your client proxy. Secondly ItemRenderRegistry.registerItemRenderer is also getting called server side don't do that. And when you do try and call it from the client proxy your client proxy is null. Just call proxyServer.registerRenderInfo();