Official comment

Campaign paths honor dates in a very strict manner, so your Contacts will be stuck on a date in the past. There are several ways around this.
USE TRIGGERS
You can set a Trigger for each date a message is sent. Use the Trigger "Today is" and put the date you want the message to be sent. Only Contacts already on the Map are subject to a Trigger set for "Today is..." so it works well for this situation. In the Settings, leave the default "Any Contact on this map" for "Who can activate this trigger?". Then, under "If Contact is already on map, then..." choose "Add here again when triggered". Add your message under the Trigger and finish off that path with an END. Here's an image with three dated messages:
IF YOU HAVE A LOT OF MESSAGES:
If you have 50 or more messages you can still use the Trigger method. If you're familiar with legacy Date Sequences, you can use one of them to avoid having 50 Triggers across the top of your Campaign.
Add a Fork element and send the Contacts to a legacy Date Sequence that has the timed messages in it. Date Sequences skip any steps in the past, so the Contact will only get messages intended for them on the day they should. The Fork allows the Contact to continue on the rest of the Campaign without interruption.
The Contacts will stay on the legacy Date Sequence, but also continue on in the Campaign using this method.