'Lockheart'/'Lockhart' is a legitimate surname...
Keyheart and Angelwill are terrible. Use Japanese last names, seriously. Go to google, search for freedict.com, and find words meaning princess, key, and dark, and use those. It's easy, and the names will flow well, because their first names are Japanese. The reason your names do not flow is because you are trying feebly to blend languages.





