This:
public static final Block oreCopper = new oreCopper(oreCopperBlockID, 0);
Is called before this:
oreCopperBlockID = config.getOrCreateBlockIdProperty("Block Id for Copper", 200).getInt();
So your oreCopperBlockID just has garbage data in it, which will indeed probably mess up minecraft in one way or another.
With a config file you have to initiate your blocks and items after you load the config file, so for instance in your init/preinit method, e.g.:
public static Block oreCopper;
@Init
public void load(FMLInitializationEvent event) {
Configuration config = new Configuration(event.getSuggestedConfigurationFile());
config.load();
oreCopper = new oreCopper(config.getOrCreateBlockIdProperty("Block Id for Copper", 200).getInt(), 0);
config.save();
}