In answer to your second question about the shelter status, there are 2 things to highlight about the syntax you used.
As
@W.P suggests below, because 'Shelter Status' is a choice column, the correct way to carry out this type of conditional test 'Shelter Status' = "Ready for Adoption" is to reference the enumeration.
For a global choice set, it would look like this - 'Shelter Status' = [@ShelterStatus]'Ready for Adoption'
For a local choice set, it would look like this ' - 'Shelter Status' = 'Shelter Status (Animals)'.'Ready for Adoption'
The second point is the same as what I mentioned below for 'foster claimer'. If 'Initial Shelter' is a lookup, you would need to specify one of the fields such as 'Initial Shelter'.'Shelter Name'.
Therefore, the working version of the code you posted below would look like this:
If(
'Shelter Status' = 'Shelter Status (Animals)'.'Ready for Adoption' Or 'Shelter Status' = 'Shelter Status (Animals)'.'Claimed for Adoption' Or 'Shelter Status' = 'Shelter Status (Animals)'.'In Foster Home',
'Foster Claimer'.'Foster Name',
If(
'Shelter Status' = 'Shelter Status (Animals)'.'In Shelter',
'Initial Shelter'.'Shelter Name',
"N/A"
)
)