The run()run() method called by the 3rd thread was unstable and sometimes did not properly construct each object due to encapsulation issues.
I have removed the extra thread and have re-structured the engine to do all rendering within the JPanel's paintComponent()paintComponent() method in the ScreenScreen class. The MainMain class has been re-structured to only create the frame then add the ScreenScreen and KeyInputKeyInput objects to the frame while managing the game logic and input.
The engine now renders with 100% success and all objects work as they should.