Here are a few thoughts to help you move forward.
1. Prove once and for all to everyone that the problem is unquestionably server-side:
If I were the Flex dev, I would use Fiddler (or any other traffic sniffer) and show you a screenshot proving the errant values are emitting from your service layer before they get into Flex. In other words, make them prove it. ( ..surely they've already done this, right? But if they haven't, they may very well prove to themselves that the problem occurs when the data hits Flex. I hope you're not in that situation. :/ )
2A. Cast the id values as String, server-side: My recommendation? Just do this and be done with it. Assuming you prove Flex is the bad guy in #1, I'd cut to the chase and cast your
id values to String server-side, like this guy, and this guy. If you do that, it eliminates every variety of "Flex-wierd-number-stuff".
2B. Configure return data types, client-side: ..alternatively, your Flex dev can "configure the return data type" for the
id values, forcing the Flex client to receive them as String values. This saves you some trouble server-side, but personally, I'm not a big fan of this approach for the reason that if I have to delete/recreate my service connection in Flex, I have to remember all the specific return types I've configured. (And sometimes this is necessary if anything is refactored or heavily revised server-side.) But this is just personal preference based on my experiences.
2C. Implement a unique solution, client-side, to handle large integer values: This is an option, but it's not necessary to get where you want to be. Nevertheless your Flex dev could experiment with this so-called
BigInt class (or anything else like it, plucked from the web). I rank this as option 2C because, well—you'd be involving a class someone created and put on their blog. :) Nothing wrong with that, but casting to
String removes all guess-work.
The truth is I love Flex for the stuff it does well, like rendering rich, visual content—and that's perfect for online maps. But I avoid doing serious arithmetic or buisness logic in Flex. Not to be pessimistic, but if you see clean data when you poll the service layer directly, I automatically suspect the issue begins when the data hits Flex. There's just no shortage of conversation about this and similar issues if you do some looking..
Best of luck. /E