Thanks for the information and sorry for missing the probably obvious bug.
nn.CrossEntropyLoss expects raw logits, so could you remove the logits = self.sigmoid(logits) and try to overfit the small data sample again?