The idea using different criteria is correct, however your model should also return different outputs for the classification and regression task:
output_label, output_bbox = net(images)
loss_label = criterion_label(output_label, labels)
loss_bbox = criterion_bbox(output_bbox, bbox)
...