Try this code..
Its no use of reurning from the loop values as it will return only the first value in the collection. anyhow this will help you from that bool return issue.
public bool retunPGN(int m, CANBusDetails busOneDetails)
{
bool flag = false;
List<PGNsegmentTxMap> PGNsegmentMapList123 = new List<PGNsegmentTxMap>();
PGNsegmentMapList123 = ReadDatabase();
for (int i = 0; i < PGNsegmentMapList123.Count; i++)
{
if ((PGNsegmentMapList123[i].PGN == busOneDetails.CANMessageDetailsList[m].HexMessageId)
&& (PGNsegmentMapList123[i].segmentTx == select1))
flag = true;
break;
}
return flag;
}