Well based on your first post as well as one of your more recent ones, I'd suggest something like:
4 platys
4 guppies
3 gourami (1m2f)
2 bolivian rams or 2 Keyhole Cichlids (you could have actually have both if you wanted)
6 corys
There would even be space to add a shoal of smaller fish, but I excluded these to better allow for fry (though you should consider a small shoal of 6 tetras if your keyholes are still hiding after a month). I can't comment on which is more aggressive when spawning. Bolivians only chase other fish away they don't actually cause any harm, I assume it's the same for keyholes. Coconut caves would be fine for bolivians but too small for keyholes.
As for fish that take care of their young, pretty much any cichlid will do that. Perhaps you could research some mouth brooding african cichlids though (I don't think they're suitable for your tank but)?
edit: caves aren't necessary for keyholes either, just somewhere where they can hide is fine, whether it's plants, wood, rocks etc. doesn't matter.