>試しにレイヤAと地理院タイルをEPSG:3857、レイヤBをEPSG:4326にすると見かけ上は上手く載りました。
地理院地図が横長になっているのは地図の座標参照系が4326になっているからでしょう。
地図の座標参照系は、QGISの右下にEPSG番号が表示されています。
この番号をクリックして、3857にすると、メルカトル図法の表示に戻ります。
理解していただきたいのは、レイヤの座標参照系は、作成したときに決まっているということです。
シェープファイルの場合は、prjファイルに座標参照系が記録されています。
国土数値情報の河川のシェープファイルには残念ながらprjファイルがないので、作られたときの座標参照系を自分で指定する必要があります。
これが間違っていると、おかしな場所に表示されます。
今回の国土数値情報の河川は「JGD2000(EPSG:4612)」でしたね。
レイヤAは、なにか書かれていませんが、地理院タイルに重ねて地物を追加したと書かれているので、多分EPSG:3857で作られたのだろうと思います。
レイヤの座標参照系は、レイヤプロパティのソースの「座標参照系の設定」で確認、設定できます。

QGISは、さまざまな座標参照系のレイヤを、自動的に位置が修正されて同じ地図上に表示することができます。
レイヤの座標参照系はバラバラなので、現在表示している地図の座標参照系を一つに指定しないと、マウスカーソルがある位置の座標がわかりません。
それは、現在作っている地図の距離や面積の計算にも影響します。
QGISの場合、デフォルトでは新規から一番初めに地図に追加したレイヤの座標参照系が、その地図の座標参照系に指定されます。
最後の質問の「横に伸びている」というのは、一番はじめにレイヤBを追加したことで、地図の座標系が4326に自動的に指定されたためだと思います。
レイヤと地図の座標参照系は別々のものだということを理解してください。
地理院タイルをXYZ Tilesでレイヤに追加している場合は、自動的にレイヤの座標参照系は3857に設定され、正しい位置に表示されるはずです。
このように正しい位置に表示されるレイヤを一つ以上持っておくことで、新しく使用するレイヤの座標参照系が正しいか確認できます。
地理院タイルと位置があっていれば正しいということです。
基本的に座標参照系を指定しなければならないのは、シェープファイルです。前述したprjファイルが無いと、座標参照系がわからないからです。
シェープファイル以外は、レイヤのファイルに座標参照系が記録されているので、特に指定する必要はありません。QGISが自動的に判断してくれます。
prjファイルがないシェープファイルの場合、正しい座標参照系を「定義」しておくと、次回使うときにいちいち座標参照系を指定しなくてもいいので楽になります。
座標参照系の定義は、プロセッシングツールで行うことができます。
プロセッシングツールボックス→ベクタ一般→シェープファイルの投影法の定義
を実行して、正しい座標参照系を指定して「定義」するとprjファイルが作成されます。
長くなりましたが、座標参照系について説明させていただきました。
キタ