The correct option is
B should have worn
The first sentence says that it was very cold. Here, 'was' indicates that an event of the past is being discussed. Thus, the action in the second sentence must also indicate a past event.
Option A is incorrect. 'could wear' indicates an event in the present and not the past. Thus, using it will make the tense of the sentence inconsistent.
Option B is correct. 'should have worn' indicates that the action 'worn' is an event of the past. Thus, it is correct.
Option C is incorrect. 'should wear' also discusses an event of the present and not the past and so, cannot be the correct answer.
Option D is incorrect. 'couldn't worn' is a grammatically incorrect phrase. According to the rules of usage, if the auxiliary is in the past tense then the main verb cannot be in its past participle form. Here, 'couldn't' is past and 'worn' is in the past participle form. Thus, it is incorrect.