Can your confirm the targets is of shape [N,] instead of [N,1] when doing regression ?
With your implementation of AdjMSELoss, I notice that if targets is of shape [N,1], since you conduct squeeze on outputs (which will be [N,]), then the loss will be wrongly broadcast to shape [N, N].
So, if this is the problem, just squeeze the targets and the loss would be identical to nn.MSELoss.
class AdjMSELoss(nn.Module):
    def __init__(self):
        super().__init__()

    def forward(self, outputs, targets):
        outputs = torch.squeeze(outputs)
        targets = torch.squeeze(targets)
        loss = (outputs - targets)**2
        return torch.mean(loss)