Если я вас правильно понимаю, это должно сделать.
$content = file_get_contents($source);
$parts = explode('</byebye>', $content);
$parts = array_map('trim', $parts);
Тогда просто запишите детали в разные файлы
$dateString = date('m-d-y');
foreach ($parts as $index => $part) {
file_put_contents("{$targetpath}part_{$dateString}{$index}.xml", $part);
}
Но я предполагаю (не зная вашего источника), что это приведет к неверному xml. Вы должны использовать один из XML-Parser (SimpleXML, DOM, ..) для обработки XML-файлов.
Sidenote: Вы используете @
слишком много.