The following things/behaviors are expected in multi lingual application.
Overload the InitializeCulture() page event. Use a session var based on the autheticated user, which stores the currentliy selected culture and reset both Thread.Culture and UICulture in the event handler.
As far as I know, these conversion issues or ToString() format issues should no exist. The current thread culture will handle all for you.
Some resources:
Walkthrough: Using Resources for Localization with ASP.NET
How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization