To get rewards points, the order needs to be "Completed", which happens when a shipment is delivered.   So, you need to figure out why "This shipment is already delivered".  Did you customize, or are you using SQL to update the shipment status prior?