So, the events fired. Good, that eliminates some t-shooting.
It tells us your events are not corrupted, and do not need to be reentered. Also, your dates match and your events are firing as normal.
Price Change 500 is the last one to fire, so it is the price change that is active.
If 500 is not the change that you want to be active, then there is a heirarchy problem.
The question is, why do you have two price changes firing on the 23rd? Which one is a daily event, which one is a weekly, etc...
You need to figure out why 500 is overriding 301.
The quick and dirty way to do it, is to have price change 301 fire at 23:06.
That would ensure that it would be the active prices, but it won't help you understand how the events are currently working. Your choice.
Also, I am assuming that you are NOT using corporate, or store level events, right? (Do the files 'events-c.cfg' or 'events-s.cfg' exist in your data folder). Or CDM???
If you are, then there are a lot more places to look for the problem.