Transaction Wallet-Address extraction
There is nothing in the body of the question that asks about addresses. However I'll cover that: the blockchain does not contain addresses. It contains bitcoin locking scripts for which or from which an address can be calculated.
See parsing bitcoin input and output addresses from scripts
and How to parse transaction script to address the correct way?
Note that wallets usually "contain" many addresses. None of which is really the wallet-address.
I am confused about how I would go about getting sender(s) and receiver(s)
The Bitcoin blockchain contains no information about senders or receivers in the common meanings of those words. It does not identify computers, devices, people or organisations
See In what format does a block store the transaction data?
It is clear to me that if I have multiple inputs / outputs that there might be multiple senders / receiver
but how do I determine them?
If the transactions in the blk files don't allow for that then how do I figure out who sent who what?
If you are a party to a transaction, then you will know because the receiver gives the sender an address of the receiver's. For example by showing them a barcode they can scan with a phone. The receiver usually chooses a new unique address for each transaction. Both parties can therefore associate the address with their real-world transaction including anything they know about the other party.
If you are not a party then you have to analyse patterns of spending in the blockchain - this is known as blockchain analytics. There are businesses you can pay to do this for you. There is no guarantee anyone can identify parties to a transaction.
I do not need a 1 to 1 mapping of transactions, if 5 people combined sent 7 other 3 BTC that is perfectly fine for my purposes as well.
In general, you can not determine the number of people involved. The blockchain has no mapping of inputs or outputs to people. You can only make informed guesses.