Never mind - quotes missing ...sigh....
You can also do the "field name" via calculation (to be safe from any change later), such as this. This is from a Set Variable script step:
I cannot tell you why yours does not work, but I tried something similar to your example and had no problem. Dumb Q: are you sure that your Serial::SerialID field is set to be auto-serial? The following works for me where Print List::PrintID is numeric and it is an auto increment serial #. You might want to see if there is a non-zero error value after the GetNextSerialValue invocation.
I feel your frustration. :-)
Set Variable [ $nextid;
Let ( [
$filename = Get(FileName);
$fieldname = GetFieldName(Print List::PrintID)
GetNextSerialValue($filename ; $fieldname)
] /* end Set Variable */
/* Examined $nextid, $filename, $fieldname and all are correct */