Hi Dan,
Did a little more digging on this issue. I found that the problem pops up when I program a memory using chirp that was never used before. To prove this, I did a factory reset of my radio, the factory reset makes memory location 1 have a set of defaults stored in it, and all other memory entries are empty. I loaded this factory default image into chirp, then used chirp to program the same repeater info into Mem 1 (overwriting the factory default) and Mem 2 (never used). Here's what I programmed into both locations:
Frequency: 145.230
Name: N6NFI
Tone Mode: Tone
Tone: 100.0
Duplex: -
Offset: 0.600
Mode: FM
I loaded this modified image onto my radio and observed that Mem 1 operated as expected, and Mem 2 had an almost static like or over-modulated quality to it on the receive audio. I then manually programmed the same repeater info on the radio itself into Mem 3 and it operated as expected. I downloaded this image back from the radio, did some poking around in the chirp code, found the v8x.py mem map information, and pulled the following memory data from the chirp image using a hex editor at the appropriate offsets to compare Mem 2 (programmed via chirp with rx issues) to that of Mem 3 (programmed on radio and operating as expected). Here's what I saw:
Mem2 (NFM): 05 10 14 52 30 C1 00 00 17 06 17 0F 12 FF FF FF FF FF FF FF FF FF FF FF 00 06 00 0C 00 00 00 00
Mem3 (NFM): 80 10 14 52 30 C1 00 00 17 06 17 0F 12 FF FF FF FF FF FF FF FF FF FF FF 00 06 00 0C 00 0D 00 10
The two memory locations differ in the values for "unknown1" and "unknown7". I hacked the Mem 2 location of the radio image with a hex text editor to change only its "unknown1" value from 0x05 to 0x80 (to match that of Mem 3), left "unknown7" untouched, reloaded onto the radio, and it then worked correctly. This appears to rule out the difference of "unknown7" from being the cause, and I can only surmise that it is the 0x05 value that gets loaded into "unknown1" during a _wipe_memory operation that is causing the strange receive audio issues. It would seem based on what I have observed at least that the mem.unknown1 value should be 0x80. Incidentally, it seems that the value 0x00 for unknown1 makes the location a "Priority Channel" for scanning, as that is what Mem 1 factory default starts off with.
The _wipe_memory operation setting mem.unknown1 to 0x05 would also explain why a memory location previously programmed on the radio, and then redefined using chirp does not show a problem, as I believe in that scenario _wipe_memory is not executed, chirp simply overwrites the known bytes and leaves the unknown* entrie untouched.
Hope that helps, let me know if you need any other data or images to look at.