First off, there's the bitmap problem. If ResHacker sees a file which has the extension .bmp, it sees it as type "BITMAP" and refuses to let you replace a type "BMP" with it. The fact that a .bmp file is a bitmap but that we need it to be inserted as type BMP when we're changing furfiles or Adoption Centre pictures is what causes all the confusion. What you need to do first is to choose the .bmp that you want to use, for instance furry.bmp, and then rename it so that the extension is different, say to furry.bmm.
Next, go to your breed's BMP section in ResHacker, and either choose "add new resource" or "replace other resource" (depending on whether you want to add a furfile or replace a picture). Now via the "open file with new resource" button, choose furry.bmm and fill out "Resource type" with BMP, "Resource Name" with whatever name it's to have (such as Homebody for the persian Adoption Centre pic), and 1033 for "Resource langage". Then hit the "replace" button, and save. The bitmap should now be in place.
Then there is the "what happened to my breed's name?" problem. The breed is fine, shows up at the Adoption Centre, but with no name or a blank line or some such where the name should be. Why ResHacker does this, I have no idea, but you're going to have to use ResHacker to fix it up again. It needs something added to the String Table. Go to String Table, then 63, then 1033 and you probably see something like this:
with the name of your breed where "Persian" is and the pet-name at the AC where "Homebody" is. Change that by adding a couple of lines, so it looks something like this:
once again, with the name of your breed where "Persian" is. You need the "Pr" for pets to breed. If it's already there, of course you don't need to add it, just add the line which starts with 1004. If you are hexing a breed other than the persian and this happens, then you must make sure that the 2-letter mnemonic is the correct one for that breed, such as "Sc" for Scotties etc. You can tell what the mnemonic should be by opening the LNZ section, you'll see SC and SCPUP for the Scottie, PR and PRKIT for the persian. Whatever the two letters are for the first LNZ, those are the ones you need in the String Table after 1002.
As for the "my breed works fine, but ResHacker won't open it any more" question, my advice is to save out the .lnz files and any bitmaps via a hex editor, and then start again with a fresh base breed, because you may find that there could be problems with the breed in future. And when ResHacker crashes, I have no idea why that happens or how to prevent it. That's one of the reasons that I don't use it very often for editing, although I do use it a lot for viewing the contents of a file.
Then there's the business of the ID number. When you've ResHacked a file, the ID number gets shifted from its usual place. Normally if you look at an original file in a hex editor, the ID number, along with an instance of the Sprite name, is situated directly underneath what I call the "List of All That's In The File", which is a list that starts something like this (in a clothes file)
00005220 0300 4300 4C00 5A00 0300 4600 4C00 4800 ..C.L.Z...F.L.H.
0000D230 0000 0000 0000 0000 0300 4200 4D00 5000 ..........B.M.P.
But when the file has been compiled and saved in Resource Hacker, the ID section is moved, in most cases down to the naming area of the file, which you can find in a hex editor by searching for the hex string 50004600
The part that contains the ID number is in fact, if you look in ResHacker, contained in the RCData section. In there it looks like this -- this example is a Babyz diaper, but the same format is there in all P.F.Magic dog, cat, clo, toy, env files from Petz 3 onwards
00008350 01 00 00 00 53 70 72 69 74 65 5F 43 6C 6F 74 5F ....Sprite_Clot_
In this case the ID number is AB3A, and if you try to change that and save in ResHacker, it doesn't actually save the change. What you need to do with this, and as far as I know with any binary section of a Resource file, is to choose Action, then Save it out (in this case choose Save [RCData] resources), then edit it externally (in this case, preferably in a hex editor) and then choose Action and Replace other Resource.
NOTE: With binary files such as RCData, FLH, FLM, SPR, etc if you want to edit them you need to do this business of Saving them out to the hard drive and then editing them, then "Replace other resource". If you want to edit text files such as CLZ, or LNZ, or String Table, then you can do so directly in Resource Hacker, but remember to then "compile" before saving.
There you go. Enjoy.