Make DupliGroups out of things like the screws, the fan lamps, the fan blades the books and all that stuff. Texture one of them in isolation mode. Making them Dupli Groups saves a lot of resources.
If you want to go deeper put one of these objects - for example a screw - into a separate file and instead of having the scew multiple times in your scene link it to your “master” file from the the “screw file” as a dupli group.
You can then texture it in the screw file without lag and see the result in you master file on all screws. Do the same with all objects you have several of in the scene.
If all of this is too complicated at least create linked data objects instead of making all objects unique when dealing with objects that are there multiple times.
Or make them particles. The fan blades for example could be particles. The screws, too. The books would be perfect. But the setup is a bit more complicated of course.