1. Try clicking a blank area of the layout outside of the portal after changing a field in the parent table. Does that cause things to update? If so, you just need to commit records--what happens when you click the layout background to get the related child record's calc to update. You can set up a script trigger on the field to perform a script to commit records to get that result.
2. This sounds like there is an error in your layout design resulting in a reference to a field from the wrong table occurrence and thus the field in all rows of the portal refers to the same record in a related table.
Thanks for both; corrected.