Sabes, yo cargué con loadSound un archivo .mp3 y después probé con este mismo archivo pero haciendo un attachSound y cuando en los 2 puse "trace(sonido.duration);" los 2 arrojaron el mismo tiempo en milisegundos. Mi veredicto
es que es un problema con tu .mp3 o un problema a nivel local (tuyo).
Seguramente cuando utilizas attachSound le pegas el archivo en .wav y cuando utilizas loadSound ocupas el archivo en .mp3 (de ser este el caso se obvio que nunca arrojarán el mismo tiempo de duración porque .mp3 es un formato comprimido).