The problem is that the Sound PLAY blocks are asynchronous (ie code execution continues without waiting for the action to complete) , as indicated by the “Then Do” sections. When you call muliple asynchronous blocks without waiting for then to complete, error often occur and in unpredictable patterns.
There are several ways to try to address this issue. The simpliest for your example is to nest one call within the other’s THEN DO section. Another more complicated technique is to create a function that waits until the asynchronous operation is finished. You can read about my approach to the problem herer Wrapping Asynchronous (then do) blocks into a Synchronous Function resolves unpredictable results.
You can also throw wait blocks in there. The problem I have found is that that the amount of time required for the wait varies by the device and what the device has going on at the time. It can reduce the errors, but unless you use a REALLY long wait (10 seconds), they will still occur from time to time.