Hi, Mat,
I think you've uncovered a bug: the WCS object created from the header isn't preserving the observer information as needed for `HeliographicCarrington`. Until that bug is fixed, you can get your code to work by adding this line after `out_wcs` is created:
```
out_wcs.coordinate_frame = frame_out.frame
```
This line, which I emphasize shouldn't actually be necessary here, passes along an already created frame object so that one isn't constructed from the WCS information.
Incidentally, you shouldn't specify `observer='earth'`, because that presumably is just an approximation to your actual observer location. You imply that `my_map` is in `Helioprojective` coordinates, so there should be a defined observer that you can re-use for the `HeliographicCarrington` frame: `observer=my_map.observer_coordinate`.
Albert