Chain keeps skipping - did I cut it too short?
The cassette does not look worn out

A cassette that is worn does not look worn.
It'll skip anyway despite not looking worn.
I suspect your cassette is simply too worn.
(Interestingly, for chainrings the opposite is true: a chainring can look very visibly worn due to the non-even wearing at different crank orientations, and still work.)

The new chain barely skips at all, except for in the highest gears/smallest three cogs on the back cassette. The skipping comes progressively often as the gear increases.

This is exactly the symptoms of a worn out cassette. The skipping happens at the smallest sprockets. The smaller the sprocket is, the more likely it's to skip.
The skipping always happens when putting a new chain. With the old worn out chain, it won't skip unless it's practically destroyed as the cassette wear matches the chain wear. After a new chain is put in, the wears no longer match and thus the skipping starts.