Le producteur du film Marc Platt sur l'adaptation du roman: "L'histoire n'était pas facile à adapter car elle brouille délibérément les frontières du réel et de l'imaginaire. Il fallait se garder du sentimentalisme, tout en permettant au spectateur de s'investir émotionnellement dans le film et ses personnages."
Afin de mettre en scène le don de Charlie, le réalisateur Burr Steers a été confronté à un souci : "Sam est-il un esprit ou le produit de l’imagination exacerbée de Charlie ? J’ai décidé de ne pas trancher afin de permettre au spectateur de faire son propre choix. Il est permis de penser que Charlie souffre d’un traumatisme psychique durable, mais aussi de croire qu’il a accès à l’au-delà. Ce qui entraîne deux perceptions très différentes du film."
La scène d'ouverture du film, qui a débuté le 31 Juillet 2009 à Vancouver, a été sans conteste la plus difficile à tourner. Mettant en scène une course de voiles, elle a nécessité la construction d'un bassin, de trois yachts, ainsi qu'une chorégraphie supervisée par Jason Rhodes, entraîneur de l'équipe olympique américaine lors des JO de Pékin en 2008.
Charlie St. Cloud est l'adaptation du roman de Ben Sherwood, The Death and Life of Charlie St. Cloud.
Charlie St. Cloud marque les retrouvailles du réalisateur Burr Steers et de Zac Efron qu'il avait déjà dirigé dans 17 ans encore (2009).
Des premières versions du script ont été écrites par Craig Pearce (habitué du cinéma de Baz Luhrmann pour lequel il a écrit les scénarios de Ballroom dancing, Romeo + Juliette et Moulin Rouge !), James Schamus (habitué du cinéma d'Ang Lee pour qui il a écrit The Ice Storm, Tigre et dragon, Hulk ou encore Hôtel Woodstock) et Lewis Colick (Piège de feu). Mais le scénario final a été réécrit par Craig Pearce et Lewis Colick.
A l'origine le film devait être réalisé par Joe Johnston, réalisateur de Jumanji (1995), Jurassic Park 3 (2001) et plus récemment de Wolfman (2010). Mais il a été remplacé par le novice Burr Steers.
Pour trouver l'interprète de Sam St. Cloud, la production a lancé un casting ouvert en ligne sur internet. Le choix s'est finalement porté sur Charlie Tahan, repéré par Marc Platt, le producteur du film, qui avait également produit Un hiver à Central Park dans lequel jouait déjà le jeune acteur: "Charlie Tahan est une révélation. Il est totalement « dans l’instant » et en parfaite communion avec Zac".
Le film devait être tourné à Marblehead dans le Massachusetts, mais en raison de coûts trop élevés, le tournage a été déplacé à Vancouver, au Canada.
Zac Efron a abandonné son rôle dans le remake de Footloose pour jouer Charlie St. Cloud peu après: "Zac était sans prétention, il débordait d'humanité et de compassion. C'était réjouissant de voir ce jeune homme si simple, si désireux de travailler et de prendre des risques. En discutant de son passé, j'ai appris qu'il avait un frère cadet dont il se sent très proche. Le rôle de Charlie est plus dramatique, plus adulte que ses précédents, mais Zac possède un immense talent et il a travaillé le personnage de Charlie en profondeur, jusque dans ses aspects les plus secrets", déclare Marc Platt.