You may not be doing anything wrong, and your model may not have an identification or other problem. There is a problem at the core of the notion of R2 itself. The basic R2 formula calculate R2 as 1 - (error variance / total variance). This formula assumes a neat division between error variance and non-error variance. With nonrecursive models, this neat division does NOT hold, and R2 calculated using the standard formula can be just anything. There is no perfect fix, but Les Hayduk has popularized a modified R2 formula--a "blocked R2"--that produces better-looking results. It's not perfect--there doesn't seem to be a perfect solution, honestly.