The collectEntries method on Groovy Maps returns an ArrayList instead of a Map, failing its basic function contract. Unknown if this is specific to the workflow plugin or a general issue with Groovy in Jenkins.
1-line test case from Map.collectEntries documentation:
assert [a:1, b:2].collectEntries
== [1:'a', 2:'b']
This may be related to https://issues.jenkins-ci.org/browse/JENKINS-26481 and may be indicative of a general mishandling of Groovy contexts.