Homemade Li-ion charger
Reading the comments I feel the need to point out:

Warning

"Good", i.e. healthy, i.e. non-defective, cells are safe and easy to charge, see below.

If a Lithium cell is damaged, through previous mechanical, thermal, or electrical abuse (over-discharge, over-charge, over-current), which may not be visible at all, charging that cell (as well as using it, sometimes even just storing them) bears significant risk of thermal runaway with fire, likely causing a chain reaction of the other cells in a battery pack.

A good/sophisticated charger will employ different mechanisms to try and detect defective cells and abort charging. Some symptoms of some defects can be detected by the charger before it's too late. Some may not be so pronounced and go undetected. That's why even with the most expensive/sophisticated chargers there's still a chance of disaster.

Answer to OP


  1) Will the above parts safely charge a 6s li-ion battery, assuming
  current supply is set appropriately for their cells' capacity?


Yes.


  2) Is it necessary to add a separate system for charge termination at
  low current (the above BMS claims to offer overcharge protection but I
  am dubious, not to mention 4.25v seems high)? If this is necessary
  what would be the easiest way to integrate such a function?


No, not necessary. As long as you make sure to never apply more than 4.2V to a cell, you're safe. This means that the PSU in your case must be set to never output more than 6*4.2V = 25.2V, besides limiting the current to appropriate value for the batteries to charge. The BMS will take care of balancing to ensure that you don't end up with one cell at e.g. 4.0V and another one at 4.4V (i.e. apparently "safe" 8.4V for a 2s).

Consider the overcharge protection of the BMS (@4.25V) as a safety feature to prevent fire, not as part of the charging algorithm.

Don't rely on this to normally terminate your charge. It's like a circuit breaker in your home: You don't stick a screwdriver into your wall outlet to turn off the light, although it will seem to work as desired most of the time.

You may want to play it extra safe or to be gentle to your batteries to prolong their life and set V[max] to 4.15V or even 4.10V per cell. This significantly reduces stress and may double the cell's life by limiting the SoC to about 90% instead of 100% (=4.2V per cell).

Note that while terminating charging is not required as long as you stay at or below 4.2V per cell, holding a cell at 4.2V for extended periods will reduce the cell's useful cycle life. Hence the cells will suffer if you keep the charger running e.g. over night or even over a weekend. Apart from that, it's not too dangerous to apply 4.2V for some time even after the cell is already full. Although a safety timer does make sense as one means to detect a cell defect: If the battery is expected to be fully charged after e.g. 1 hour, and the charger detects that it does not seem to be full even after e.g. 2 hours, it should assume a defect and abort charging.


  3) Final question - what would I need to adapt about this system for
  charging LiFePo batteries in series?


Because LiFePo's operate at a lower maximum voltage (about 3.6V instead of 4.2V for Li-Ion), you'll need a different BMS, and you need to set the PSU's maximum output voltage to 3.6V per cell, i.e. 6*3.6V = 21.6V max.