@RickPannekoek: thank you very much for pointing out the problem area.
indeed deserialize is happening and post that order of list was correct. but post that json has been stored in cache for better performance. that is where the list is getting sorted.
as an workaround as of now we have commented the code so-that json has not stored in cache.
I recently ran into this same issue on a web 9.1 install. Our issue was that our cd_storage_conf.xml for our deployer and our content service was out of sync. In the deployer we had our config publishing some items to the file system and others to the broker. However, in our content service, we did not have any item types pointing to the file system. ...