I don't know the answer, but I wanted to validate that you are not the only person who has seen this problem. It has happened randomly in one of my solutions and the only thing I could do was add instructions to refresh if the value list was blank.
The first time I saw this I happened to be at FM DevCon and I had several people (none of them FM Studio users) look at the problem. The unanimous conclusion was a problem with the FM Studio value list function. This was several years ago, and at the time I was very new to PHP so there was no way I was going to mess with FM Studio code. For that particular solution, no one has ever complained so I never bothered to go back and fix it. But I haven't used the FM Studio value list feature in ages because of this problem.
Instead, I use Todd Duell's method (from his excellent book about the FileMaker API for PHP), summarized:
Get the value list (in the example below, the layout is "Demo", the value list and the name of the field with the value list attached are both "MultiValueList" and the connection is $fm):
$layout = $fm->getLayout('Demo');
$multivalues = $layout->getValueList('MultiValueList');
Get the actual values from the MultiValueList field from the record. Then use the explode PHP method to separate the values into an array using the carriage return ("\n") as the separator value:
$values = $record->getField('MultiValueList');
$values = explode ("\n", $values );
Create the html for the multi value list using the values from $values and the $multiValueList value list.
foreach($multiValues as $multiValue)
$selected = ' selected';
$selected = '';
# Build the final html
# Format will look something like:
# <option value="Dog" selected>Dog</option>
$multiValueList .= '<option value="' . $multiValue . '"' . $selected . '>' . $multiValue . '</option>';
$multiValueList .= '</select>';
Hope that helps.