If you are going to be doing a bit of plist editing on Windows you can buy Plistinator, which handles both binary and XML versions of plist files. There's a video and screenshots on the site explaining its features and how it compares to "Plist Editor Pro". The array elements are numbered and the order is preserved as per the original file.
Disclaimer: I'm the developer of Plistinator.
Update: (ref @Journeyman-Geek comment) Plistinator as far as I know should parse the file correctly. The file back end is a clean-room implementation based on Apple's Open Source C code, and its extensively unit tested.
I've found from users that sometimes third party non-apple programs (like Unity, Qt Creator, dozens of others) generate plist files which are non-standard. Also plist files can become corrupted by crashing or misbehaving programs. So "given a plist file" doesn't mean that its standards compliant.
Certainly if the file is OK, and has an array in it Plistinator will number the rows and preserve the order. I have some things to say about iCopyBot's product in the How-To video on the plistinator site, which I won't repeat here. As far as I can tell Plistinator is the only Plist editor for Windows that provides a complete working solution.
Plistinator is designed to work like Xcode, but has some improvements over it. For example string fields can be edited in a large text box - so in that regard at least its easy to edit entries.