I have found two situations that prevent data collected by a deployed science instrument (Ionographer PD-22, Go-ob ED Monitor, etc.) from being transmitted back to Kerbin even when a good communication link from the Probodobodyne Experiment Control Station to Kerbin, optionally through a relay, is available. If either one or both of these conditions exist, then the science completed by the instrument(s) will not be transmitted. While the problems are likely due to programming logic errors, workarounds are available as detailed below.
I have observed that the science collected by a deployed science instrument is transmitted at about 28-day intervals provided the equipment is powered and enabled, additional science has been collected, and a communications link is available. If there is no communications link at the time a transmission is attempted at the end of the next interval, a message communicating the failure is posted for each instrument, the key noCommNetMsgPosted in the corresponding SCIENCECLUSTER.MANNEDSCIENCEPARTS.MANNEDSCIENCEPART.EXPERIMENT section of the Persistent.sfs or other save file is updated with the value "True", and no further transmission attempts are ever made even if the comm link is restored before the next interval. To fix this problem, reset noCommNetMsgPosted = False for all affected instruments in the save file.
Even with transmissions suspended after losing a comm link, deployed instruments will continue to collect science until they reach 100% of the science limit. When that happens, editing the noCommNetMsgPosted key value is still necessary but is not sufficient to fix the problem because there is no new science to be collected which is needed to trigger a transmission attempt. So, in addition to setting noCommNetMsgPosted = False in the save file, you must also reduce TotalScienceGenerated to a value below ScienceLimit found in the same EXPERIMENT sub-section so that new science may be completed to trigger a transmission attempt. You should also reduce StoredScienceData by the same percentage. (StoredScienceData was 12 times smaller than TotalScienceGenerated in my save file.) Next, you must also reset Enabled = True in the MANNEDSCIENCEPART section for each affected instrument. You may also want to verify that isEnabled = True in the instrument's VESSEL.PART.MODULE section found later in the save file. Searching for the MANNEDSCIENCE PartID will help you locate the vessel part having the matching persistentId.
After editing and saving the save file, reload the file in Kerbal Space Program. Expect up to 28 game days to elapse before receiving a message stating successful science data transmission provided a good communication link is available at the moment the transmission is attempted.