So after digging into the model loading system it looks like the model loading is a different process than what it appears on the surface. When using JSON files to load models, textures are registered automatically in that process, but not if you load the textures yourself. There's also the OBJLoader's internal cache, which means that loading the OBJModel before the texture is registered will result in storing a broken copy of the model. This means that you won't be able to get the textures by OBJModel#getTextures() in order to register them. Of course you could just use your own loader and add a section that loads without the cache so you can use OBJModel#getTextures() to get the textures and register them. Then later on load again with the cache.
So if your texture looks like this when you load the OBJ model, your mapping is lost:
TextureAtlasSprite{name='powersuits:items/armor/diffuse', frameCount=0, rotated=false, x=0, y=0, height=0, width=0, u0=0.0, u1=0.0, v0=0.0, v1=0.0}
If it looks like this then it should work:
TextureAtlasSprite{name='powersuits:items/armor/diffuse', frameCount=1, rotated=false, x=1024, y=512, height=512, width=512, u0=0.25, u1=0.375, v0=0.25, v1=0.5}